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個までの事例と同様に以下を実施します。
- choice = InputBox() の中の選択肢を増やす
- Select Case に増やしたCaseを追加
- callで呼び出すマクロを追加
「フォームコントロール」による実行メニューの構築方法
単純なメニューでExcelのワークシート上にボタンを追加し、そのボタンにマクロを登録したい場合は以下を参考にします。
方法として、「フォームコントロール」と「ActiveX コントロール」の2つの方法がありますが、基本はシンプルなメニューで「フォームコントロール」で実施します。
「ActiveX コントロール」は何か意図がある時の利用で良いと思います。
注: ActiveX コントロールは Mac ではサポートされていません。
「フォーム」による実行メニューの構築方法
フォームを開いたまま Excelのセル編集や他の作業が可能なマクロを作成したいときは次の「モードレス表示」で実現します。
以上、Excel VBAで簡易なマクロ実行メニューの作成事例でした。