プロが教える店舗&オフィスのセキュリティ対策術

フォルダ内にあるいくつかのWordファイルページ数を一括して知る方法を教えて下さい

1つのWordファイルを選択→右クリック→プロパティ概要タブ
でページ数を知ることは出来ますが、ファイルによっては違う枚数が表示されたりします。

ファイルが大量にあるので1つ1つファイルを開く時間を少しでも削減するために
簡単な方法があれば…と思い質問させて頂きました。

宜しくお願い致します。

※フォルダ内のファイルはwordのみです
※OS:winXP Word:2003

A 回答 (2件)

VBAですが・・・。



Word2000>tokuさんのドキュメントプロパティ取得マクロ
http://www.harapan.co.jp/honyaku/Macro_Bunko/b_w …
    • good
    • 0
この回答へのお礼

回答ありがとうございました
CSVで取得できるのですね♪
後々活用できそうです。
助かりました。

お礼日時:2006/08/26 00:01

こんにちは。



以下は、マクロが分かる人を対象にしていますが、MsgBox で出すか、イミディエイトウィンドウに出してしまえばよいと思います。MsgBox 側の先頭に、「'」をつけて、Debug.Print 側の先頭に、「'」を外せばよいです。Visual Basic Editor 画面で、Ctrl + G で見れます。

ただ、これは、いずれにしても読むに時間が掛かります。ページ数の多いドキュメント(100ページを超える)は、Repaginage(以下は入れてあります) して、タイムラグを取らないと、Wordではうまくいかない可能性が強いです。待つことをしたくない場合は、DSOFile.dll を使って、一気に読ませる方法があります。

http://support.microsoft.com/kb/224351/ja


Sub GetWordProperties()
  Dim wdDoc As Word.Document
  Dim Fname As Variant
  Dim Fnames As Object
  Dim msg As String
  Dim wdCnt As Long, wdtitle As String 'ページ数とタイトル
 
  With Application.FileDialog(msoFileDialogOpen)
   .Show
  Set Fnames = .SelectedItems
  If Fnames.Count = 0 Then
   Exit Sub
  Exit Sub
  End If
  End With
  For Each Fname In Fnames
  Set wdDoc = Application.Documents.Open(Fname, , True)
  With wdDoc
   .Repaginate
   wdtitle = .BuiltInDocumentProperties(wdPropertyTitle)
   wdCnt = .BuiltInDocumentProperties(wdPropertyPages)
   .Close False
  End With
  Set wdDoc = Nothing 
  msg = msg & vbCrLf & wdtitle & " 総ページ数: " & wdCnt
  '大量にあるなら、イミディエイトウィンドウに出したほうが早い
  'Debug.Print wdtitle; " 総ページ数: "; wdCnt  Next Fname
  If msg <> "" Then
   MsgBox msg
  End If
End Sub
    • good
    • 0
この回答へのお礼

回答ありがとうございました。
色々な方法があって驚きました。
マクロにはまだまだ勉強が足りませんが、ちょっと頑張ってみます

お礼日時:2006/08/26 00:03

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!