同じフォルダに保存されている複数のWord文書内のページ数を一覧表示する方法を見つけようとしています。これはVBAを使用して可能ですか?
私は使っている:
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 = False
をTrue
に設定することもできます。 Wordアプリケーションが点滅しているのがわかります。
「Windowsエクスプローラー」でページを表示することもできます。ファイルの上にある列を右クリックしてさらに選択すると、pages
を選択して、Word文書ごとのページを含む列を表示できます。したがって、ドキュメントを開く前にページ数を確認できます。 (列を表示するには、Details
ビューにいる必要があります)
本当に必要な場合は、これを自分でVBA(Word-macro)に翻訳することもできます。
私を参照してください 同様の質問に対する以前の回答 -これは役立つかもしれません。
IS技術的には達成可能ですが、常に信頼できるとは限りません-特に(計算上)高価でなくても、誰も望んでいません-そして私の答えはその理由を説明しています。