web-dev-qa-db-ja.com

Word [.doc]ドキュメント内のページを数える

同じフォルダに保存されている複数のWord文書内のページ数を一覧表示する方法を見つけようとしています。これはVBAを使用して可能ですか?

私は使っている:

  • Windows7および
  • Microsoft Office 2007
4
BobJim

VBA(Word自体)でそれを行う方法はわかりませんが、小さなVBSファイルを作成してディレクトリにドロップし、ダブルクリックすることができます。

Const wdStatisticPages = 2
Set FSO = CreateObject("Scripting.FileSystemObject")
currentPath = fso.GetAbsolutePathName(".")
set FLD = FSO.GetFolder(currentPath)
Set objWord = CreateObject("Word.Application")
objWord.Visible = False
For Each Fil In FLD.Files
    If UCase(FSO.GetExtensionName(Fil.name)) = "DOCX" Then
        Set objDoc = objWord.Documents.Open(currentPath & "\" & Fil.Name)
        intPages = intPages + objDoc.ComputeStatistics(wdStatisticPages)
        objDoc.Saved = True
        objDoc.Close
    End If
Next
objWord.Quit
Wscript.Echo "Total pages: " & intPages
Set oShell = Nothing
Set FLD = Nothing
Set FSO = Nothing

ファイルがすべて.docx拡張子であると仮定します。

インスピレーション(および説明)は ここ から来ました。簡単にするために、私はobjWMIServiceを使用せず、Scripting.FileSystemObjectを使用しました。 objWord.Visible = FalseTrueに設定することもできます。 Wordアプリケーションが点滅しているのがわかります。

「Windowsエクスプローラー」でページを表示することもできます。ファイルの上にある列を右クリックしてさらに選択すると、pagesを選択して、Word文書ごとのページを含む列を表示できます。したがって、ドキュメントを開く前にページ数を確認できます。 (列を表示するには、Detailsビューにいる必要があります)

本当に必要な場合は、これを自分でVBA(Word-macro)に翻訳することもできます。

3
Rik

私を参照してください 同様の質問に対する以前の回答 -これは役立つかもしれません。

IS技術的には達成可能ですが、常に信頼できるとは限りません-特に(計算上)高価でなくても、誰も望んでいません-そして私の答えはその理由を説明しています。

0
SnookerFan