Excelを開くと同時に自動実行されるマクロ

スポンサーリンク
この記事は約3分で読めます。

すでに作成済みのマクロ(例:MyMacro)を実行する場合

  • VBAエディターを開く
    • Excelを開き、Alt + F11 を押してVBAエディターを開きます。
  • 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 イベントが実行されます。

補足

  • セキュリティ設定
    マクロの実行がブロックされている場合は、[ファイル] > [オプション] > [セキュリティ センター] > [セキュリティ センターの設定] > [マクロの設定] から「すべてのマクロを有効にする」または「デジタル署名されたマクロを有効にする」に変更してください。
  • 信頼済みの場所に保存
    マクロの警告を避けるため、[ファイル] > [オプション] > [セキュリティ センター] > [信頼できる場所] に保存フォルダを追加するのも有効です。

にほんブログ村 IT技術ブログ IT技術メモへ

コメント

タイトルとURLをコピーしました