shikumika’s diary

日々の事務作業で手間なことを簡単にできる仕組み(自動化、方法など)、困ったことの解決方法を調べた備忘録

【Excel VBA】簡易なマクロ実行メニューの作成事例

Excelマクロを使用した業務の自動化で、メニューの中からマクロを選んで実行したいとき、簡易な方法で実現する事例です。

いわゆる簡易ランチャーの作成事例で、フォームを使用しない、シンプルな方法です。

内容:

動作確認のExcelは「Microsoft® Excel® for Microsoft 365 MSO」(バージョン2503)です。

アウトプットイメージ

このマクロは、ユーザーに対して「InputBox」を使って選択肢を提示し、入力された値に応じて特定のマクロを呼び出す事例です。

インプットボックスで、実行するマクロの番号を入力する画面です

簡易ランチャーの作成事例

VBAサンプル

VBAのサンプルは次のとおりです。

Sub マクロ実行メニュー()
    Dim choice As String
    choice = InputBox("実行するマクロの番号を入力してください:" & vbCrLf & _
                      "1: マクロ1" & vbCrLf & _
                      "2: マクロ2" & vbCrLf & _
                      "3: マクロ3", "簡易ランチャー")
    
    Select Case choice
        Case "1"
            Call マクロ1
        Case "2"
            Call マクロ2
        Case "3"
            Call マクロ3
        Case Else
            MsgBox "無効な選択です。", vbExclamation
    End Select
End Sub

Sub マクロ1()
    MsgBox "マクロ1です"
End Sub

Sub マクロ2()
    MsgBox "マクロ2です"
End Sub

Sub マクロ3()
    MsgBox "マクロ3です"
End Sub

 

補足説明

マクロの修正方法について

上記は選択するマクロメニューが3個の事例です。
メニューの数を増やす場合は、3個までの事例と同様に以下を実施します。

  1. choice = InputBox()  の中の選択肢を増やす
  2. Select Case に増やしたCaseを追加
  3. callで呼び出すマクロを追加
「フォームコントロール」による実行メニューの構築方法

単純なメニューでExcelのワークシート上にボタンを追加し、そのボタンにマクロを登録したい場合は以下を参考にします。

support.microsoft.com

方法として、「フォームコントロール」と「ActiveX コントロール」の2つの方法がありますが、基本はシンプルなメニューで「フォームコントロール」で実施します

「ActiveX コントロール」は何か意図がある時の利用で良いと思います。

注: ActiveX コントロールは Mac ではサポートされていません。

参考) フォームまたはコントロール ボタンにマクロを割り当てる - Microsoft サポート

「フォーム」による実行メニューの構築方法

フォームを開いたまま Excelのセル編集や他の作業が可能なマクロを作成したいときは次の「モードレス表示」で実現します。

shikumika.org

以上、Excel VBAで簡易なマクロ実行メニューの作成事例でした。