Excel VBA 逆引き集 | メニュー画面

Excel VBA
スポンサーリンク

メニュー画面の基本

Excel VBAで「複数の処理をまとめて選べるようにしたい」「ユーザーが迷わず操作できるようにしたい」といった場面では メニュー画面(UserFormを使ったメニュー) を作ると便利です。
初心者向けに、コード例やテンプレートをかみ砕いて説明します。


基本の考え方

  • メニュー画面とは?
    複数の処理をボタンやリストでまとめて表示し、ユーザーが選択して実行できる仕組み。
  • 用途:
    • 「登録」「検索」「編集」「削除」などの機能をまとめる
    • 複数のマクロを一つの入口から呼び出す
    • 操作をわかりやすくする
  • 流れ:
    1. UserFormにボタンやリストを配置
    2. 各ボタンに処理を割り当てる
    3. メニュー画面を起点にして他の処理を呼び出す

テンプレ1:基本的なメニュー画面(ボタン形式)

UserFormに CommandButton1(登録)CommandButton2(検索)CommandButton3(終了) を配置。

Private Sub CommandButton1_Click()
    Call RegisterData   ' 登録処理を呼び出し
End Sub

Private Sub CommandButton2_Click()
    Call SearchData     ' 検索処理を呼び出し
End Sub

Private Sub CommandButton3_Click()
    Unload Me           ' メニュー画面を閉じる
End Sub
VB
  • ポイント:
    • 各ボタンに処理を割り当てる。
    • Unload Me でフォームを閉じる。

テンプレ2:リストから選択して処理実行

UserFormに ListBox1(処理一覧)CommandButton1(実行ボタン) を配置。

Private Sub UserForm_Initialize()
    ListBox1.AddItem "登録"
    ListBox1.AddItem "検索"
    ListBox1.AddItem "編集"
    ListBox1.AddItem "削除"
End Sub

Private Sub CommandButton1_Click()
    Select Case ListBox1.Value
        Case "登録": Call RegisterData
        Case "検索": Call SearchData
        Case "編集": Call EditData
        Case "削除": Call DeleteData
    End Select
End Sub
VB
  • ポイント:
    • リストから選んだ処理を実行。
    • Select Case で分岐。

テンプレ3:アイコン付きメニュー(ラベルクリック)

UserFormに Label1(登録)Label2(検索) を配置。
ラベルを「ボタン代わり」に使うことも可能。

Private Sub Label1_Click()
    Call RegisterData
End Sub

Private Sub Label2_Click()
    Call SearchData
End Sub
VB
  • ポイント:
    • ラベルをクリックイベントで処理に割り当て。
    • 見た目をアイコン風に整えると「メニュー画面」らしくなる。

テンプレ4:メニュー画面から別フォームを呼び出す

Private Sub CommandButton1_Click()
    UserForm_Register.Show   ' 登録フォームを開く
End Sub

Private Sub CommandButton2_Click()
    UserForm_Search.Show     ' 検索フォームを開く
End Sub
VB
  • ポイント:
    • メニュー画面を「入口」として、他のフォームを呼び出す。
    • 機能ごとにフォームを分けると整理しやすい。

テンプレ5:終了確認付きメニュー

Private Sub CommandButton3_Click()
    Dim ans As VbMsgBoxResult
    ans = MsgBox("終了しますか?", vbYesNo)
    
    If ans = vbYes Then
        Unload Me
    End If
End Sub
VB
  • ポイント:
    • 終了前に確認を取る。
    • 誤操作を防げる。

例題で練習

'例1:ボタン形式のメニュー
'例2:リストから選択して処理実行
'例3:ラベルクリックで処理実行
'例4:別フォームを呼び出す
'例5:終了確認付きメニュー
VB

初心者向けポイント

  • UserFormを「メニュー画面」として使う → 複数処理をまとめる入口。
  • ボタンやリストに処理を割り当てるCall マクロ名 で呼び出し。
  • Select Caseで分岐 → 選択肢ごとに処理を切り替える。
  • フォームを分けて呼び出す → 機能ごとに整理できる。
  • 終了確認を入れる → 誤操作防止。

👉 この「メニュー画面テンプレ」を覚えておけば、Excel VBAで 複数機能をまとめた便利な操作画面 を簡単に作成できます。

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