Excel VBAで、フォームによる簡単ランチャーの作成事例です。
フォームを利用するメリットの一つに、フォームを開いたまま Excelのセル編集や他の作業が可能な「モードレス表示」がある点があります。
VBA業務の属人化を防止のため、できるだけシンプルな構成が望ましいです。レイアウトの自由度はないですが、次の「フォーム」ではなく「インプットボックス」やExcelのワークシート上にボタンを追加する方法で目的が達成できるなら、その方が良いと思います。
内容:
動作確認のExcelは「Microsoft® Excel® for Microsoft 365 MSO」(バージョン2503)です。
「フォーム」で次のようなマクロの実行メニューを作成します。
Excelのセル編集中、常にメニューを表示し、マクロを選択して実行するため、「モードレス表示」のオプションを活用した事例です。

以下は、ユーザーフォームの作成イメージです。コンポーネントなどをクリックしたときのオブジェクト名はVBAのコードで利用するので確認しておきます。
この事例では、リストボックスを選択したとき、オブジェクト名は”ListBox1”となっています。

ユーザーフォームに以下のコードを追加します。
もし、前述のコンポーネントのオブジェクト名が違う場合は、修正します。
Private Sub UserForm_Initialize() 'リストボックスに選択肢を追加' ListBox1.AddItem "マクロ1" ListBox1.AddItem "マクロ2" ListBox1.AddItem "マクロ3"End SubPrivate Sub CommandButton1_Click() Select Case ListBox1.Value Case "マクロ1" Call マクロ1 Case "マクロ2" Call マクロ2 Case "マクロ3" Call マクロ3 Case Else MsgBox "選択が無効です", vbExclamation End SelectEnd SubSub マクロ1() MsgBox "マクロ1を実行しました"End SubSub マクロ2() MsgBox "マクロ2を実行しました"End SubSub マクロ3() MsgBox "マクロ3を実行しました"End Sub
ユーザーフォームにコード追加するには、フォームを右クリック、「コードの表示」をクリックします。

以下は、上記でコード表示をした後、コードを記述イメージです。

次のコードを標準モジュールに追加し、ユーザーフォームを表示します。
Sub ランチャーを起動() UserForm1.Show vbModelessEnd Sub

以上、Excel VBAでフォームによる簡単ランチャーの作成事例でした。
引用をストックしました
引用するにはまずログインしてください
引用をストックできませんでした。再度お試しください
限定公開記事のため引用できません。