質問: フォルダ内のWord文書の情報をリスト化するプログラム 下記のサイトにありますVBAのコードの改変、
回答: >以前作って頂いたコードの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に入力していたと思われます。「原稿」に該当するフォルダーが別の場所にあったと思われます。コードを直接編集すればいいんですが、それを避けたんでしょう。外出しですね。 そうすると、質問の、 1下記のサイトにありますVBAのコード >該当部分は多分この部分だと思います。 >Dim path As String >path = ThisWorkbook.path & "\原稿" 2 >以前作って貰ったコード >FileName = Dir([B1] & "\*.Doc*") >While FileName > "" >Set Docu = Word.Documents.Open([B1] & "\" & FileName) 1はpathで固定。2はセルB1の内容を使って変更できるようにしてある。 質問者さんは1、2のどちらを直したいかよく分かりませんが、 1を直すのなら、 path = ThisWorkbook.path & "\原稿" _↓ path = "C:\test" このフォルダーにWord Docがたくさんある 2を直すのなら、 Sheet1のB1に「C:\test」と入力するのでしょう。 また、2を標準モジュールに動かす場合は、Sheet1.[B1]とすべきです。 あくまでも、全体のコードの提示がない状態での推測です。Excelブック、Wordドキュメントともテスト環境を用意し、十分テストをしてください。 ご参考に。