桜、抹茶、白、日記

名古屋市在住のC++使いのcoderの日記だったもの。

VBAでWord文書のページ数取得

d:id:youandi:20100223:p1
仕事がないので、OLEオートメーションで、Word文書を開いて各ページの用紙設定(A4, A3, etc.)を取得してダンプするプログラムを4時間で書いたのですが、総ページ数を取得すると必ずページ数が「3」になるので変だなと思ったらこれが原因だった。

[WD97] 総ページ数を返す (カウントする) VBA マクロ
http://support.microsoft.com/kb/185509
WD2000: BuiltInDocumentProperties 不正なページの数を返します
http://support.microsoft.com/kb/212653/ja
WD2000: BuiltInDocumentProperties Returns Incorrect Page Count
http://support.microsoft.com/kb/212653/en

VBAのコードを載せてるサイトではRepaginate()を呼び出してなかったのでハマった。


あと、今回VS2013で開発してみましたが、コード整形機能はコピペ時にも適用されてしまうので、便利なようで結構クセがあるなーと思った。