メニュー画面の基本
Excel VBAで「複数の処理をまとめて選べるようにしたい」「ユーザーが迷わず操作できるようにしたい」といった場面では メニュー画面(UserFormを使ったメニュー) を作ると便利です。
初心者向けに、コード例やテンプレートをかみ砕いて説明します。
基本の考え方
- メニュー画面とは?
複数の処理をボタンやリストでまとめて表示し、ユーザーが選択して実行できる仕組み。 - 用途:
- 「登録」「検索」「編集」「削除」などの機能をまとめる
- 複数のマクロを一つの入口から呼び出す
- 操作をわかりやすくする
- 流れ:
- UserFormにボタンやリストを配置
- 各ボタンに処理を割り当てる
- メニュー画面を起点にして他の処理を呼び出す
テンプレ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で 複数機能をまとめた便利な操作画面 を簡単に作成できます。
