これ何て呼びますか

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

いつも大変御世話になっております。

WiindowsXP環境にある【D:\input】フォルダ直下にいろんなフォルダ及びファイル等があります。

【D:\input】直下にあるファイルすべてを【D:\output】に移動したいのですが
【D:\input】直下にはファイルだけあれば制御しやすいのですが、
【D:\input】直下には、サブフォルダ(その下にファイル・フォルダ等もあるので)もあるのでうまく
マクロで制御出来ません。

移動対象は、【D:\input】フォルダ内の拡張子がある(.○○系)ファイルのみです。
拡張子自体が存在しないフォルダは移動対象ではありません。
どうすれば【移動対象のフォルダ構成は崩壊した状態で、すべてのファイルが【D:\output】直下に移動する。】
事が可能でしょうか?

もしご存知の方がいらっしゃるようでしたら、ご教授願いますでしょうか?

何卒宜しくお願い致します。

A 回答 (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

とか。
    • good
    • 0

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