- ベストアンサー
Word文書:頁数カウント
あるPC内のフォルダにWord文書が100個ほどはいっているものとします。 その総頁数を把握するための方法、あるいはツールがありますか。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
一例として、EXCELに一覧表を作成し、1行目に総ページ数を表示するEXCELのマクロ Sub test() Dim MyWD As Object Dim MyFl As String, MyPth As String Dim ix As Long ix = 2 Set MyWD = CreateObject("Word.Application") MyPth = "C:\Documents and Settings\あなたの名前\My Documents\" MyFl = Dir(MyPth & "*.doc") Do While MyFl <> "" MyWD.documents.Open Filename:=MyPth & MyFl, ReadOnly:=True Cells(ix, 1) = MyWD.activedocument.Name Cells(ix, 2) = MyWD.activedocument.BuiltinDocumentProperties("Number of Pages") MyWD.activedocument.Close SaveChanges:=0 ix = ix + 1 MyFl = Dir Loop MyWD.Application.Quit Set MyWD = Nothing Range("A1").Value = "Total Page =" Range("A1").HorizontalAlignment = xlRight Range("B1").Formula = "=SUM(B2:B" & ix - 1 & ")" End Sub
その他の回答 (2)
#2の「お礼」での、フォルダ名指定の要望は、真剣に作ると結構大変なので、簡易版で、何かファイルを選んだらそのファイルの存在するフォルダでの一覧を作成します。 Sub lstwddoc() Dim MyWD As Object Dim MyFl As String, MyPth As String Dim ix As Long ix = 2 MyPth = Application.GetOpenFilename If MyPth = "False" Then Exit Sub Set MyWD = CreateObject("Word.Application") 'MyPth = "C:\Documents and Settings\tminami\My Documents\" MyPth = Left(MyPth, InStrRev(MyPth, "\")) Debug.Print MyPth MyFl = Dir(MyPth & "*.doc") Debug.Print "MyFl = "; MyFl Do While MyFl <> "" MyWD.documents.Open Filename:=MyPth & MyFl, ReadOnly:=True Cells(ix, 1) = MyWD.activedocument.Name Rem Cells(ix, 1).Formula = "=hyperlink(""" & MyPth & MyWD.activedocument.Name _ & """,""" & MyWD.activedocument.Name & """)" Cells(ix, 2) = MyWD.activedocument.BuiltinDocumentProperties("Number of Pages") MyWD.activedocument.Close SaveChanges:=0 ix = ix + 1 MyFl = Dir Loop MyWD.Application.Quit Set MyWD = Nothing Range("A1").Value = "Total Page =" Range("A1").HorizontalAlignment = xlRight If ix = 2 Then Range("B1").Value = "対象ファイルなし" Else Range("B1").Formula = "=SUM(B2:B" & ix - 1 & ")" End If End Sub また、以下のマクロを実行すると、上のマクロを実行するためのボタンをツールバーに作成します。 Sub mkbtn() ' Dim Cbar1 As CommandBar, myControl As CommandBarControl ' Set Cbar1 = CommandBars.Add(Name:="ユーザー設定", Position:=msoBarTop) Cbar1.Visible = True Set myControl = Cbar1.Controls.Add(Type:=msoControlButton) With myControl .FaceId = 2950 .Caption = "Word一覧作成" .OnAction = "lstwddoc" End With End Sub
お礼
力作どうもありがとうございました。研究させてもらいます。
- paruru
- ベストアンサー率37% (154/407)
ワードプロパティライターというフォルダ内にあるワードファイルのプ ロパティを読取り、一覧表示・印刷するシェアウェアソフトです。 ページ数も出るかは分からないのですが、試用できるようなので 試してみてはいかがでしょうか。 http://www.midway-software.net/print/pwriter_wd/
お礼
早速試用してみました。 少なくとも今の段階では頁数は表示されていませんでした。 でもおもしろいソフトウェア紹介どうもありがとうございました。
お礼
なるほどこうやればできるんですね。ためしてみたいとおもいます。 フォルダ名指定するところも作っていただければ、そして あるボタンを起動すると走るように。 どうもありがとうございました。