設定画面の基本
Excel VBAで「ユーザーが自由に条件やオプションを選べるようにしたい」といった場面では 設定画面(UserFormを使った設定フォーム) を作ると便利です。
初心者向けに、コード例やテンプレートをかみ砕いて説明します。
基本の考え方
- 設定画面とは?
ユーザーが「処理条件」「表示オプション」「対象範囲」などを選んで、後続の処理に反映させるためのフォーム。 - 用途:
- レポート作成時の条件指定
- データ抽出の範囲選択
- 出力形式の選択
- 流れ:
- UserFormに入力欄(TextBox、ComboBox、CheckBoxなど)を配置。
- 「OKボタン」で選択内容を変数に保存。
- 後続の処理でその変数を利用。
テンプレ1:基本的な設定画面(範囲指定)
UserFormに TextBox1(開始セル)、TextBox2(終了セル)、CommandButton1(OKボタン) を配置。
Private Sub CommandButton1_Click()
Dim startCell As String, endCell As String
startCell = TextBox1.Value
endCell = TextBox2.Value
MsgBox "開始セル: " & startCell & vbCrLf & "終了セル: " & endCell
End Sub
VB- ポイント:
- ユーザーが入力した値を変数に保存。
- 後続処理で範囲指定に利用できる。
テンプレ2:コンボボックスで選択肢を用意
UserFormに ComboBox1(処理方法) と CommandButton1 を配置。
Private Sub UserForm_Initialize()
ComboBox1.AddItem "集計"
ComboBox1.AddItem "抽出"
ComboBox1.AddItem "並べ替え"
End Sub
Private Sub CommandButton1_Click()
Dim mode As String
mode = ComboBox1.Value
MsgBox "選択された処理: " & mode
End Sub
VB- ポイント:
UserForm_Initializeで候補を追加。- 選択結果を変数に保存。
テンプレ3:チェックボックスでオプション設定
UserFormに CheckBox1(ヘッダーあり)、CheckBox2(重複削除)、CommandButton1 を配置。
Private Sub CommandButton1_Click()
Dim headerFlag As Boolean, uniqueFlag As Boolean
headerFlag = CheckBox1.Value
uniqueFlag = CheckBox2.Value
MsgBox "ヘッダーあり: " & headerFlag & vbCrLf & "重複削除: " & uniqueFlag
End Sub
VB- ポイント:
CheckBox.Valueは True/False。- オプション設定に便利。
テンプレ4:設定内容をシートに保存
Private Sub CommandButton1_Click()
Dim ws As Worksheet: Set ws = Worksheets("Settings")
ws.Range("A1").Value = TextBox1.Value ' 開始セル
ws.Range("A2").Value = TextBox2.Value ' 終了セル
ws.Range("A3").Value = ComboBox1.Value ' 処理方法
ws.Range("A4").Value = CheckBox1.Value ' ヘッダーあり
ws.Range("A5").Value = CheckBox2.Value ' 重複削除
MsgBox "設定を保存しました!"
End Sub
VB- ポイント:
- 設定内容を「Settings」シートに書き込む。
- 次回以降も設定を再利用できる。
テンプレ5:保存した設定を読み込む
Private Sub UserForm_Initialize()
Dim ws As Worksheet: Set ws = Worksheets("Settings")
TextBox1.Value = ws.Range("A1").Value
TextBox2.Value = ws.Range("A2").Value
ComboBox1.Value = ws.Range("A3").Value
CheckBox1.Value = ws.Range("A4").Value
CheckBox2.Value = ws.Range("A5").Value
End Sub
VB- ポイント:
- フォームを開いたときに前回の設定を読み込む。
- ユーザーが再設定しやすい。
例題で練習
'例1:範囲指定フォーム
'例2:処理方法選択フォーム
'例3:オプション設定フォーム
'例4:設定内容をシートに保存
'例5:保存した設定を読み込む
VB初心者向けポイント
- UserFormを「設定画面」として使う → 入力欄や選択肢を配置。
- Initializeイベントで初期値を設定 → 候補や前回の設定を読み込む。
- OKボタンで変数に保存 → 後続処理に反映。
- シートに保存して再利用 → 実務で便利。
👉 この「設定画面テンプレ」を覚えておけば、Excel VBAで ユーザーが自由に条件を選べる便利な設定フォーム を簡単に作成できます。
