• ベストアンサー

EXCEL2003 VBAマクロ 特定フォルダ直下のファイル処理

EXCEL2003 VBAマクロ 特定フォルダ直下のファイル処理 いつも大変御世話になっております。 WiindowsXP環境にある【D:\input】フォルダ直下にいろんなフォルダ及びファイル等があります。 【D:\input】直下にあるファイルすべてを【D:\output】に移動したいのですが 【D:\input】直下にはファイルだけあれば制御しやすいのですが、 【D:\input】直下には、サブフォルダ(その下にファイル・フォルダ等もあるので)もあるのでうまく マクロで制御出来ません。 移動対象は、【D:\input】フォルダ内の拡張子がある(.○○系)ファイルのみです。 拡張子自体が存在しないフォルダは移動対象ではありません。 どうすれば【移動対象のフォルダ構成は崩壊した状態で、すべてのファイルが【D:\output】直下に移動する。】 事が可能でしょうか? もしご存知の方がいらっしゃるようでしたら、ご教授願いますでしょうか? 何卒宜しくお願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

説明が細かすぎて逆にわからん。。。 D:\input フォルダにあるファイルのみを D:\output に移動したいってこと? FileSystemObject を使えば一発か。 参照設定で "Microsoft Scripting Runtime" にチェックを入れる。 ちなみに各行のインデントは全角スペースを入れてあるので、このままコピペしてもエラーになる。 全角スペースを削除して [TAB] でインデントさせること。 Sub Hoge()  Dim fso As Scripting.FileSystemObject  Dim fs As Scripting.Files  Dim f As Scripting.File  Set fso = New Scripting.FileSystemObject  Set fs = fso.GetFolder("D:\input\")  For Each f In fs   f.Move "D:\output\"  Next End Sub 参照設定をしたくなければ Dim fso As Object, fs As Object, f As Object Set fso = CreateObject("Scripting.FileSystemObject") Set fs = fso.GetFolder("D:\input\").Files For Each f In fs  f.Move "D:\output\" Next とか。

関連するQ&A