エクセルVBAでブックを開いたときに他のワークブックも一緒に自動で開く

★気に入ったらシェアをお願いします!


open

photo credit: CJS*64 “Man with a camera” Just love small gardens ! via photopin (license)

みなさん、こんにちは!
タカハシ(@ntakahashi0505)です。

お仕事でいつも決まった複数のエクセルファイルを使っていませんか?

朝来たら、全部のファイルをダブルクリック…頻繁にあると思うとちょっと面倒ですよね。

特定のファイルを開いたら、一緒に使用する他のファイルも一気に開いたりするととっても便利です。

今回は、エクセルVBAでブックを開いたら一緒に他のワークブックも自動で開くプログラムを紹介します。

Auto_Openというイベントプロシージャを使いますよ。

では、行ってみましょう。

スポンサーリンク

Workbooks.Openでワークブックを開く

エクセルVBAでワークブックを開く場合は、Workbooks.Openを使います。

書き方は

Workbooks.Open 開くファイルのフルパス

ですね。

「Workbook」ではなくて「Workbooks」ですよ。「s」が入るので注意して下さいね。Workbooksコレクションに開いたワークブックを追加する、みたいなイメージです。

開くファイルの指定は「フルパス」で指定する必要があります。Windowsであれば、だいたいCドライブから始まるこんなやつです。

C:\Users\Noriaki\Dropbox\40_ブログ\vba-file-dir\開くファイル\エクセル-1.xlsx

複数のワークブックを開くプログラム

ですから、例えば

というプログラムを走らせると二つとも開いてくれます。

エクセルVBAで複数のワークブックを開く

Auto_Openでファイルを開いたときに実行する

…ですが、これでは「特定のファイルを開いたら一緒に他のファイルも自動で開く」ではありませんね。

現在マクロを仕込んでいるワークブックを開いたら自動で開くようにしたいのです。

そのような場合は、プロシージャ名を

Sub Auto_Open()

と変更をすればOKです。たったそれだけです。

ブックを起動時に他のブックも起動するプログラム

わざわざ書くまでもないですが

として保存。閉じてから再度開くと

エクセルVBAでブックを開くと同時に他のブックも開く

マクロを記述した「ファイルを開く.xlsm」とともに、マクロ内で指定した二つのファイルも開きます。

イベントプロシージャAuto_Open

このからくりですが、イベントプロシージャというものです。

VBAにはイベントプロシージャというものがありまして、ワークブックやワークシートなどのオブジェクトに対して何らかのイベントが発生したときに、自動で走らせるプロシージャを仕込むことができるのです。

今回のAuto_Openは標準モジュールに仕込むことができ、手動でマクロを記述したファイルを開いた際に実行されるものです。

けっこう便利なので覚えておきましょう。

Auto_OpenとWorkbook_Openとの違い

Auto_Openと同じく、ワークブックが開いたときに実行されるイベントプロシージャとしてWorkbook_Openというものがあります。

これらの違いは何でしょうか…?

一つ目は記述先です。Auto_Openは標準もジュールに記載をしますが、Workbook_Openはブックモジュール「ThisWorkbook」に記述します。

二つ目は起動条件です。VBAでブックを開いたときに違いが出ます。つまり、これですね。

これで開いたとき、Workbook_Openは実行されますが、Auto_Openは実行されません。

まとめ

以上、エクセルVBAでファイルを開いたときに他のファイルも一緒に自動で開く方法についてお伝えしました。

ちょっとしたツールですが、毎日の作業を考えるとけっこう便利なのではないかと思います。

さて、以降このツールをどんどんパワーアップさせていきます。

まず、現在はWorkbooks.Openを使っていますから、ちゃんと開ける対象はエクセルファイルだけです。ワードとか、テキストファイルとかも開きたいじゃないですか。

次回、エクセル以外の他のアプリケーションのファイルを開く方法をお伝えします。

エクセルVBAでエクセル以外の他のアプリケーションを開く方法
エクセルVBAでファイルを開く作業を自動化する方法をお伝えしています。今回はエクセルVBAでエクセル以外の他のアプリケーションのファイルを開く方法としてShellオブジェクトの使い方をお伝えします。

どうぞお楽しみに!

連載目次:エクセルVBAでファイルを開く作業を自動化する方法

お仕事でいつも決まったファイルをいつも一つずつダブルクリックして開くの…毎日だと思うと面倒ですよね。 このシリーズではエクセルVBAでいつも使うファイルを開く作業を自動化する便利ツールを作っていきます。
  1. エクセルVBAでブックを開いたときに他のワークブックも一緒に自動で開く
  2. エクセルVBAでエクセル以外の他のアプリケーションを開く方法