• ベストアンサー

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

  • 特定のフォルダー内のエクセルファイルを開くVBA

    たとえば C:\My Documents\データ というフォルダーには20~30のエクセルファイルが入っています ファイルの名前は「えくせる なんばー101」などという名前になっています 「えくせる なんばー」までは共通で「101」の部分はそれぞれランダムな数字が入っています ランダムなファイル名なのでファイルを捜して開くのが大変です インプットボックスなどで 「101」の部分を入力すれば該当ファイルが開くような マクロを作りたいのですが (続きナンバーにして フォルダの整列をすれば捜しやすいのですが ネットワーク上の共有フォルダなので勝手にファイル名を変えることが出来ないのです) VBA初心者なのでよろしくお願いします

  • VBAフォルダ内ファイル入出力について

    Accessで特定のフォルダ内にあるcsvファイルを全て読み込み、別のcsvファイルへ 出力するという処理を作りたいのですが、最近からVBAを始めたばかりで どうすればよいか分かりません。 とりあえず、特定のファイルをひとつ読み込み、別ファイルへ出力することはできました。 Option Compare Database Private Sub Button_Click() Dim No As Integer Dim buf No = FreeFile Open "C:\test1.csv" For Input As #1 Open "C:\test2.csv" For Output As #2 Do Until EOF(No) Line Input #1, buf Print #2, buf Loop MsgBox "処理終了" Close #1 Close #2 End Sub 読み込み対象を「特定のフォルダ内のファイル全て」 にする方法が知りたいです。 ちなみに出力先のファイルはひとつにまとめてもそれぞれ別のファイルに 出力でもどちらでも構いません。 できれば両方教えていただければ有難いです。 宜しくお願いします。

  • VBAでフォルダ内の全ブックにマクロをかけ集計する

    VBA初心者ですが、本を読んで勉強しても分からないので質問させていただきます。 質問したいことは以下の通りです。使用するのはEXCEL2007です。 あるフォルダ内に999から1600と名前の付いたEXCELのファイルがあります。 その全てのファイルに、あらかじめ作成済みのマクロをかけそのマクロをかけたEXCELファイルのE62からH62までをコピーし、別のファイル(作成済み、名前を仮にAとします)にペーストしたいのです。 ペーストは縦に順番に(例えば、999のファイルから切り取ったE62からH62までのデータをファイルAのB2からE2にコピー、1000のファイルから切り取ったE62からH62までのデータをB3からE3へ…)といった感じです。 一度にフォルダ内の全ファイルを開くわけにはいかないので、999に上記の処理を行ったら保存せずに閉じ、今度は1000にといった感じで次々と処理を行っていきたいと思っております。細かいマクロは自分で作成できたのですが、コピーしたものを別ファイルAにペーストする部分と、999から1600まで連続して処理を行う部分ができません。 分かりにくい文章で申し訳ございませんがぜひご教授ください、よろしくお願いいたします。

  • フォルダ内の特定ファイル名表示

    excel のVBAでmydoocumentの"abc"というフォルダの中にあるxls拡張子 付きのファイルを今開いているシートのA列にxxx.xlsと表示するマクロを書きたいのですが。教えてください。

  • フォルダ内のファイルに順番にマクロ実行(VBA)

    こんにちは。 いつもこのサイトにはお世話になっています。  いま、WORDマクロで、あるプログラムを作成したのですが、現在の状態だと、ファイルにマクロを実行させたい場合、そのファイルを開いてマクロを実行するしかありません。  そうではなくて、指定されたフォルダの中にあるファイルのうち、rtf拡張子で終わっているものに順番に自動的にマクロを実行するというようなプログラムは書けないのでしょうか。  プログラムのなかに、ファイルのパスを指定してそのファイルに実行する方法は分かったのですが、フォルダだけ指定しておいて(というよりユーザにテキストボックスで指定させて)、そのフォルダに入っているrtfファイルすべてにマクロを実行する方法はありますでしょうか?    もしありましたら教えていただいたいと思い投稿しました。よろしくお願いします。

  • 【Excel VBA】1つのファイルにまとめる方法

    1つのフォルダの中に複数のExcelファイルが保存されています。 seat1だけを1つに集めたExcelファイルを新規で作成したいです。 ※シート1をどんどん追加させるイメージです。 ※フォルダの中に入っているExcelファイル数は毎月変わります。 手順(1)フォルダに入っているExcelシートを開く 手順(2)sheet1を【シートの移動またはコピー】新規BOOKにコピー 手順(3)フォルダに入っているExcel分繰り返す。 手順(4)シート名を変更する。    どういう風にVBAコードを記入すればいいかわからないので教えていただきたいです。どうぞよろしくお願いいたします。

  • Excel2000とExcel2002のVBAの違いについて。

     以前、このカテゴリーにて、Excel2000におけるVBAのマクロを教えてもらったのですが、そのマクロ入力済みエクセルファイルをExcel2002へ移植したら、上手くVBAが働きません。  具体的にいうと、シート1に入力したデータの履歴を、シート2にて保存していくマクロなのですが、Excel2002では履歴のシートに上書きしていくことがあります。(たまに発生する)  Excel2000ではキチンと履歴のセルが全て残ります。  どなたか、この不具合を認識しておられる方。もしくは、対策をご存知の方がいらっしゃいましたら、教えてください。  

  • VBAマクロを含んだEXCELファイルが開けません。

    どうも。 VBA初心者です。 VBAのマクロを含んだEXCELファイルを作成、保存したのですが、EXCELファイル自体が開けなくなってしまいました。 コードの内容は繰り返し制御の練習(WHILE LOOP)ですので、たいしたことはしていません。 原因がお分かりになる方は教えてください。

  • エクセル VBA ファイルをフォルダへ移動させる

    エクセル VBA 手探り状態です。 001大企業.xls、001中小企業.xls、003大企業.xls、003中小企業.xls、008大企業.xls、008中小企業.xls・・・・というファイルが300ほど企業種類という名前のフォルダにあります。 VBAで企業種類という名前のフォルダの中に、001、003、008・・・というフォルダは作成しました。 (ネットで”フォルダ作成”を検索して、、、自力ではVBAは書けません) それを001という名前のフォルダへは、001大企業.xls、001中小企業.xlsのファイル、003という名前のフォルダへは003大企業.xls、003中小企業.xlsのファイルを、008フォルダへは008大企業.xls、008中小業.xlsファイルを・・・というように、マクロで移動させたいのです。 これらのファイル、フォルダは全て、企業種類というフォルダの中にあります。 VBAを教えていただけましたら嬉しいです。

  • VBAで、excelファイルのマクロを実行したら、特定のフォルダのファ

    VBAで、excelファイルのマクロを実行したら、特定のフォルダのファイルの特定セルを確認し、その結果を反映する、というマクロを組みたいと思っています。 具体的には下記のマクロを組みたいと思っています。 ------------------------------------------------------ (1)マクロを組むファイル【worksheet】にてマクロを実行する (2)特定のフォルダのファイルのA1、A2、A3、A4の全てに”OK”という文字が入っているかを確認 ・C:\excel\1番\kakunin_1.xls にあるkakunin.xlsの、A1セルに”OK”という文字が入っていたら次はA2、A3、A4の順序で 確認する。 ・このとき、A1にOKと入っていて、A2には入っていなかった場合は、A2という文字を、【worksheet】のB1セルに結果を表示する ようにする。 ・特定のフォルダの構成は下記 C:\excel\1番\kakunin_1.xls |--\2番\kakunin_2.xls |--\3番\kakunin_3.xls ・上記の処理を、1番フォルダの【kakunin_1.xls】で実行し、【worksheet】のB1セルに結果を表示。 2番フォルダの【kakunin_2.xls】で実行し、【worksheet】のB2セルに結果を表示。 3番フォルダの【kakunin_3.xls】で実行し、【worksheet】のB3セルに結果を表示。 ------------------------------------------------------ VBAどころかプログラミング自体が初めてなので、例えば引数が何かも一々考えて1文ずつ読み込まなければいけない状態です。。 どなたかこの無知な自分に力を貸して頂けないでしょうか?