2008年10月14日火曜日

[.NET]Excelの印刷ページ数の算出

先日COM Interopを使ったExcelを使う機会がありました。テンプレートから値をはめ込んだ後、印刷ページ数を算出し、目次を作るという処理を組んだのですが、どうもページ数が合わない。
で、いろいろ調べてみると非推奨ながらマクロを使った方法があるようなので紹介します。

//本当はコレで算出できるはずなんですが。。。
//    int hCount = getHPageBreaks(sheet) + 1;
//    int vCount = getVPageBreaks(sheet) + 1;
//
//    return hCount * vCount;


//代替の方法
    return Convert.ToInt32(sheet.Application.ExecuteExcel4Macro"Get.Document(50,\"" + sheet.Name + "\")" ));

1 件のコメント:

GENZO さんのコメント...

本当はコレで算出・・・
の方法は印刷時の縮尺が100%であればただしく動作するようです。