いつでも医師に相談、gooドクター

フォルダ内にエクセルファイルが約3,000個あります。
この全てのBookに同じ処理をしたいのですが、マクロで繰り返す方法がわからないので教えて下さい。
処理をする内容は簡単なもので、マクロで作りました。

・ 各Bookには1つのシートしか存在せず、シート名は重要ではないので全て「Sheet1」になっています。
・ 各Bookのデータの配置や表形式は同じです。
・ レコードの行数がBookによって異なります。

処理の内容をマクロで作るところまではできましたが、知識がないためタイムアウトです。

ご教示宜しくお願い致します。

gooドクター

A 回答 (3件)

だいたいこんな流れで。



sub macro1()
 dim myPath as string
 dim myFile as string

 mypath = "C:\test\"

’指定フォルダのブックを順繰り拾う
 myfile = dir(mypath & "*.xls*")
 do until myfile = ""

 ’ブックを開いて処理を行い保存して閉じる
  workbooks.open mypath & myfile
  activesheet.range("A1") = "DONE"
  activeworkbook.close true

  myfile = dir()
 loop
end sub


必要に応じて
・画面の表示を抑制する
・再計算を手動にする
といった手管を追加して高速化を図ります。
    • good
    • 13
この回答へのお礼

ありがとうございました。
今、せっせと処理をしてくれています。

解説付きで教えて下さったので、とても勉強になり、理解することができました。

高速化のアドバイスもありがとうございます。
試してみたら本当に早くなりました!

ネットでいろいろ検索をしてみましたが、気ばかり焦って、思うような結果も得られず、こちらで相談したのですが、こんなにご丁寧に教えていただけて心から感謝しています。

本当にありがとうございました。

お礼日時:2014/04/27 13:25

No.1 です、連続ですみません。

参考として次のページを追加します。

3.5 ワークブックを閉じる http://www.happy2-island.com/excelsmile/smile03/ …
    • good
    • 6

もしもその「workbook に施す同じ処理」というのが、開いている workbook に対して実行すべきものであるとすれば、Dir 関数で探して、開いて、データ処理などして、閉じて、を繰り返すなど。



Dir関数 http://officetanaka.net/excel/vba/function/Dir.htm
Dir関数でサブフォルダを取得する http://officetanaka.net/excel/vba/tips/tips95.htm
Dir関数の注意点 http://officetanaka.net/excel/vba/tips/tips69.htm
あまり知られていないDir関数の特徴 http://www.moug.net/tech/exvba/0100048.html
    • good
    • 4
この回答へのお礼

たくさんのヒントをありがとうございました。

ページを印刷したので、後程ちゃんと勉強させていただきます。

ありがとうございました。

お礼日時:2014/04/27 13:26

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

このQ&Aを見た人はこんなQ&Aも見ています

gooドクター

このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング