ExcelVBA(マクロ)でWordのページ数の取得
Excel VBAでWordのページ数を取得するやり方を書いてみました。 マクロを使ったページ数の確認方法は2つあります。マクロの中でWordファイルを開いて確認するか、開かずに確認するかという違いがあります。 まず、実際のコードを紹介します。Wordファイルを開かずにページ数を確認
Private Function get_page_cnt_word(sFile As String, sPath As String) As Long 'ページ数の取得を行う関数(Word) '引数:処理対象のファイル名、処理対象ファイルの格納フォルダ Dim wdDoc As Object 'オブジェクトを取得 Set wdDoc = GetObject(sPath & "\" & sFile) 'ページ数を取得 get_page_cnt_word = wdDoc.BuiltinDocumentProperties(14).Value 'オブジェクト変数を解放 Set wdDoc = Nothing End Function
ファイルを開かずにページ数を取得するためには、Dsofile.dllのインストールが必要になります。詳しくは下記の記事を参照ください。
Dsofile.dllのダウンロード・使い方
Wordファイルを開いてページ数を確認
Private Function get_page_cnt_word(sFile As String, sPath As String) As Long ‘ページ数の取得を行う関数(Word) '引数:処理対象のファイル名、処理対象ファイルの格納フォルダ Dim wdApp As Object Dim wdDoc As Object Dim lCount As Long Set wdApp = CreateObject(“Word.Application”) 'ファイルオープン Set wdDoc = wdApp.Documents.Open(sPath & “" & sFile) 'ページ数取得 lCount = wdDoc.ComputeStatistics(Statistic:=wdStatisticPages, IncludeFootnotesAndEndnotes:=True) 'Wordを閉じる wdDoc.Close wdApp.Application.Quit 'ページ数表示 get_page_cnt_word = lCount 'オブジェクト変数を解放 Set wdDoc = Nothing Set wdApp = Nothing End Function
それぞれの方法のメリット・デメリット
Wordファイルを開かずにページ数を確認メリット
- 処理速度が速い
- 実際のページ数と違った値を出すことがある
- dsofile.dllをインストールする必要がある
メリット
- 正確なページ数を取得することができる
- ファイルを開くため、処理速度が遅い
- 参照設定を行う必要がある
この記事はお役に立てたでしょうか?
もし参考になると思っていただけたら、こちらのボタンから共有をお願いします。
ツイート |
|