すでに作成済みのマクロ(例:MyMacro)を実行する場合
- VBAエディターを開く
- Excelを開き、
Alt + F11
を押してVBAエディターを開きます。
- Excelを開き、
- ThisWorkbookにコードを記述
- 左側の「Microsoft Excel Objects」内にある ThisWorkbook をダブルクリックします。
- 以下のコードを入力します。
方法①: Call
を使う
Private Sub Workbook_Open() Call MyMacro End Sub
Call を省略してもOKです。
方法②: Application.Run を使う
他のブックにあるマクロを実行したい場合や、マクロ名を変数として扱いたい場合は、Application.Run を使います。
Sub RunMultipleMacros() Application.Run "Macro1" Application.Run "Macro2" Application.Run "Macro3" End Sub
Application.Run
のメリット
-
- 別のブックのマクロ (
Application.Run "Book1.xlsm!Macro1"
) も実行できる - マクロ名を文字列で管理できる
- エラーを回避しやすい(マクロが存在しなくても
On Error Resume Next
で続行可能)
- 別のブックのマクロ (
方法③: 配列+ループで実行
たくさんのマクロをまとめて実行したい場合、配列を使うと便利です。
Sub RunMultipleMacros() Dim macros As Variant Dim i As Integer macros = Array("Macro1", "Macro2", "Macro3") ' マクロ名を配列に格納 For i = LBound(macros) To UBound(macros) Application.Run macros(i) Next i End Sub
この方法なら、実行するマクロを増やしたいときに配列を編集するだけで済みます。
- ファイルを「マクロ有効ブック(.xlsm)」で保存
Ctrl + S
を押し、ファイル形式を Excelマクロ有効ブック(.xlsm) にして保存します。
- Excelを閉じて再度開く
- ファイルを閉じて、もう一度開くと
Workbook_Open
イベントが実行されます。
- ファイルを閉じて、もう一度開くと
補足
- セキュリティ設定
マクロの実行がブロックされている場合は、[ファイル] > [オプション] > [セキュリティ センター] > [セキュリティ センターの設定] > [マクロの設定] から「すべてのマクロを有効にする」または「デジタル署名されたマクロを有効にする」に変更してください。 - 信頼済みの場所に保存
マクロの警告を避けるため、[ファイル] > [オプション] > [セキュリティ センター] > [信頼できる場所] に保存フォルダを追加するのも有効です。
コメント