フォルダ内のWord文書の情報をリスト化するプログラム 下記のサイトにありますVBAのコードの改変、

フォルダ内のWord文書の情報をリスト化するプログラム 下記のサイトにありますVBAのコードの改変、 フォルダの場所を原稿となっている所から、以前作って頂いたコードのsheetのB1のようにするにはどうしたら良いですか。 例 ファイル C:\test フォルダ内のWord文書の情報をリスト化するプログラム https://tonari-it.com/excel-vba-word-document-list/ どのように改変すると良いでしょうか。アドバイスをよろしくお願いします。 該当部分は多分この部分だと思います。 Dim path As String path = ThisWorkbook.path & "\原稿" 以前作って貰ったコード FileName = Dir([B1] & "\*.Doc*") ' While FileName > "" Set Docu = Word.Documents.Open([B1] & "\" & FileName)

Visual Basic | Excel11閲覧xmlns="http://www.w3.org/2000/svg">100

ベストアンサー

0

>以前作って頂いたコードのsheetのB1のようにする コードの提示がなく、「ように」と言われてもお手上げです。 で、質問から推測すると、 「下記のサイトにありますVBAのコード」は下記のような構造。Excelブックがあるファルダの下に「原稿」フォルダーがあって、その中にWord Docだけがたくさんある前提です。 ThisWorkbook.path(VBAのコードがあるブックのフォルダー) __└原稿 ____├WordDocument1(*.Doc*") ____├WordDocument2(*.Doc*") ____├・・・ ____└WordDocumentN(*.Doc*") 「以前作って・・・」は分かりません。上とは違うんでしょうが、その中にはWord Docしかないという条件は同じでしょう。 で、 FileName = Dir([B1] & "\*.Doc*") から、このコードは、このブックのSheet1のコードペインにあるために、[B1]で運良く動いているように思えます。[B1]に何が入力されていたか推測すると、「ThisWorkbook.path & "\原稿"」ではなく、自由なパスをB1に入力していたと思われます。「原稿」に該当するフォルダーが別の場所にあったと思われます。コードを直接編集すればいいんですが、それを避けたんでしょう。外出しですね。 そうすると、質問の、 ①下記のサイトにありますVBAのコード >該当部分は多分この部分だと思います。 >Dim path As String >path = ThisWorkbook.path & "\原稿" ② >以前作って貰ったコード >FileName = Dir([B1] & "\*.Doc*") >While FileName > "" >Set Docu = Word.Documents.Open([B1] & "\" & FileName) ①はpathで固定。②はセルB1の内容を使って変更できるようにしてある。 質問者さんは①、②のどちらを直したいかよく分かりませんが、 ①を直すのなら、 path = ThisWorkbook.path & "\原稿" _↓ path = "C:\test" このフォルダーにWord Docがたくさんある ②を直すのなら、 Sheet1のB1に「C:\test」と入力するのでしょう。 また、②を標準モジュールに動かす場合は、Sheet1.[B1]とすべきです。 あくまでも、全体のコードの提示がない状態での推測です。Excelブック、Wordドキュメントともテスト環境を用意し、十分テストをしてください。 ご参考に。

この返信は削除されました

ThanksImg質問者からのお礼コメント

ありがとうございました

お礼日時:1/21 13:45

その他の回答(1件)

1

前のワークシートをそのまま使うことを考慮し、11行目から出力にしました。 ' Sub Macro3() '     Dim Word As Word.Application     Dim Docu As Word.Document     Dim FileName As String     Dim Row As Long '     Set Word = CreateObject("Word.Application")     Word.Visible = True     FileName = Dir([B1] & "\*.Doc*")     Row = 11 '     While FileName > ""         Set Docu = Word.Documents.Open([B1] & "\" & FileName)         Cells(Row, "A") = Docu.Content.Information(wdNumberOfPagesInDocument)         Cells(Row, "B") = Docu.Paragraphs.Count         Cells(Row, "C") = Docu.Sentences.Count         Cells(Row, "D") = Docu.Words.Count         Cells(Row, "E") = Docu.Characters.Count         Docu.Close True         Row = Row + 1         FileName = Dir     Wend     Word.Quit     MsgBox "終了しました" End Sub

1人がナイス!しています