• ベストアンサー

フォルダ内の全てのエクセルにマクロを実行する方法

1つのフォルダに入っているエクセルに同じマクロを実行したいのですが、やり方がわかりません。 実行するマクロは完成しているため、現在のマクロにフォルダ内全てのエクセルを開いて実行するマクロを追加したいです。 初心者でマクロをよく理解出来ていないので、方法を教えてください。よろしくお願いします。

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

  • ベストアンサー
  • SI299792
  • ベストアンサー率48% (715/1480)
回答No.1

実行するマクロが書いてありませんが、このようにすればいいです。 Sub MacroA() '   Dim FileName As String '   FileName = Dir([B1] & "\*.xls*") '   While FileName > ""     Workbooks.Open [B1] & "\" & FileName     実行するマクロ 'マクロ名をここに書く     ActiveWorkbook.Close True     FileName = Dir   Wend End Sub シートには、図の様に処理するフォルダを入力してください。

tentekomari
質問者

お礼

ありがとうございました。 問題が解決し、うまくいきました。

その他の回答 (1)

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.2

似た質問は頻出する課題だ。 Googleなどで、「フォルダ内のファイル名を取得 vba」などで照会すれば、似た課題のコードが出てくる。 VBAをやるなら、WEB照会は必須だろう。それさえもやってなくて、他人に頼っていては、回答が出ても、修正もできず、意味も解らず、役に立たないだろう。 (1)Dir関数を利用する法 (2)FSOでForEachを使う方法 Excelブックに限定するには、拡張子xlsx、(マロを使っているならxlsmも)を捉えればよい。(2)の場合は、それ以外は処理しないでスルー。 (1)だと拡張子を指定してDir関数が使える。 (1)だと http://officetanaka.net/excel/vba/file/file07.htm (2)だと http://officetanaka.net/excel/vba/filesystemobject/sample07.htm これら以外も多数の記事がある。 ーー これで、フォルダ内のエクセルブック名がわかる。 そのブック名でブックを開き、問題のシートを指定して、その直後に、VBAでのコードがすでにできているSUBの名前を記入するだけ。 問題のシートを探す必要がある場合が在り、これも質問事項かな。 しかし、出来上がっているVBAの処理コードが、いろんなブックのシート用に なっているか(通常はなっていないので、修正が簡単か)など、チェックと手直しとテストが必要な場合がある。 これはVBAの中級以上のスキルが要ると思う。 (A)あるブックのシートに、そのフォルダのエクセルブック名を行データとしてリスト化する。 (B)そして一番上のブック名を読んで、今できているマクロが正しく動くか(結果が正しいか)どうか、チェックする。 (c)そしてその後、(A)の全行のブック名を使って、処理を行う。 ForNextでの繰り返しなど。 ファイルが多いと、開いて、閉じてで時間がかかるが、やむを得ない。 ScreenUpdating=Falseなどを活用すべきなのかな。

関連するQ&A

  • マクロでフォルダ内の全てのExcelファイルを開くには?

    Excelのマクロ機能で、マクロを実行すると、あるフォルダ内にある全てのExcelファイルを開くことってできますでしょうか?

  • エクセルVBAで全てのマクロを実行するには?

    エクセルVBAの初心者です。 エクセルの他のワークブックからマクロのあるワークブックを開き、値を入れる式は成功したのですが、マクロにはパスワード保護がかかっており、マクロの実行式を入れることができません。 DoCmd.RunMacro で マクロ名は必須のようです。 マクロボタンは1つだけです。 すべてのマクロを実行、というようなコマンドは可能でしょうか?

  • Excelマクロで複数のファイルを開く方法

    Excel VBAでそのマクロを実行するファイルと同じフォルダにある 複数のテキストファイルを全て開いて、ある処理を実行して それを名前を変えた別のテキストファイル(元のテキストファイル名に 何らかの名前を追加する形が望ましいです。)として保存する マクロを作成したいのですが、可能でしょうか。 当方、初心者につき申し訳ございませんがよろしくお願い致します。

  • エクセルのマクロからアクセスのマクロ実行命令を出せますか?

    教えてください。 一連の作業をアクセスのマクロとエクセルのマクロを使って作業を完成させました。 まず最初にエクセルのブックを起動し、マクロを実行し作業をさせ、その後にアクセスを起動させ、マクロを実行し、作業ファイルをエキスポートさせ、またエクセルに戻り、エクセルマクロを実行させて作業を関せさせたいと思います。 そこで、エクセルのマクロでアクセスを起動させ、アクセスのマクロを実行させるようなことはできるのでしょうか? よろしくお願いします。

  • エクセル起動時、自動的にマクロを実行する

    エクセルファイルを開いたとき、自動的にマクロを 組み込む方法で、「XLSTARTフォルダ」にマクロファイル を置くという方法を最近知りました。 任意のエクセルファイルを開いたときのみ XLSTARTフォルダのマクロファイルを実行する 方法はないのでしょうか? 普通にエクセルを使いたいときでも、マクロが組み込まれて しまい、とても困っています。 例えば、指定のフォルダの中にあるエクセルファイルであれば XLSTARTフォルダのマクロファイルを実行する という、操作ができたりすれば、とてもよいのですが。 何か良い方法があれば、教えていただきたいです。

  • 複数のエクセルファイルに対してマクロを順次実行する方法

    エクセルのマクロについて教えていただきたいです。 以下のような状況なのですが、アドバイスいただけないでしょうか。 ・同一フォルダに100個以上の同じ形式のエクセルファイルがある(ファイル名に規則性はなし) ・各ファイルは2つのシートから成り、そのうちの「データ」というシートに対して処理を適用したい ・適用したい処理のマクロは作成済み なお、適用したい処理というのは、「データ」シートからある値以上のデータの平均を別のエクセルファイル(これは1つのファイル)に記入するという作業で、値を読み込むだけで書き込むことはありません。 このマクロをフォルダ内の全てのエクセルファイルに対して実行したいのですが、可能であれば各エクセルファイルを開かずにマクロを実行したいのです。(100個を越えるファイルを開いたり閉じたりする動作を避けたい) マクロはしっかりと勉強したわけではなく、ネットから情報を集めつつなんとか作っているレベルで、特にファイルの読み書きがよく理解できていません・・・分かりやすいサイトなどがあればそれも教えていただきたいと思っています。 自分でも上手く説明できていないのはわかりますので、もし必要な情報がありましたら付け加えさせていただきます。 分かる方がいらっしゃいましたらどうぞよろしくお願いいたします。

  • エクセルを開いたときに実行するマクロ等を教えてください。

    前に、http://oshiete1.goo.ne.jp/qa4335365.html で質問させて頂きました。 その節は、お世話になりありがとうございます。 本件で2点、困った点がありますので ご教示何卒よろしくお願いいたします。 (1)回答No.5のargumentさんに教えて頂いた通りに コードを作成したつもりなのですが、 エクセルファイルを開くと同時にマクロが実行されません。 マクロの実行から、マクロをスタートさせれば 思い通りの結果になるのですが、 自分でマクロを実行させなければならず、 目的を達成でき兼ねております。 argumentさんのおっしゃる 「※以下は必ずVBE上のThinworkbookの中に書き込んでください。」 という意味が分からないでおりますので、 このことと関係があるかもしれません。 お手数ですが、エクセルファイルを開くと同時に マクロが始まる方法を素人向けにご教示頂けませんでしょうか。 (2)マクロを無効にされたら? エクセル2003の場合、ファイルを開くときに 「マクロを有効にしますか?」という メッセージボックスが出てきますが、 ここでマクロを無効にするを選ばれてしまったら、 せっかくマクロを用意して、すべてのシートが 削除されるようにしたのが無意味になってしまう気がしております。 マクロを有効にしないと、エクセル画面で 何もできないような方法はございませんでしょうか。 エクセル2007でも拡張子を変えられちゃったらどうしようと 心配でなりません。 この点、対処方法をご教示頂けませんでしょうか。 何卒、よろしくお願い申し上げます。

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

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

  • モジュール内のマクロを全て実行させるには

    エクセルのModule1に100のマクロがあるとします。 この100のマクロを一括処理させる方法を教えてもらいたいのですが。 ようするに実行ボタンを100回押さなくて済む方法です。 また100のマクロ名を一つ一つ記入しなくて済む方法です。

  • たまにマクロを実行できないときがある

    Excel VBAを使っていて、 たまにマクロを実行できないときがあります。 特にデバッグ途中というわけでもないのに、 マクロで実行したいプログラムを選択しても実行ボタンがグレー色になっており 実行することができません。 全てのプログラムではなく、実行途中に変な操作が入り、 停止したものだけです。 excelを再起動すると元に戻ります。 これはどういう状態にあるのでしょうか? 再起動せずに復帰する方法を教えてください。

専門家に質問してみよう