Excel VBA 逆引き集 | 設定画面

Excel VBA
スポンサーリンク

設定画面の基本

Excel VBAで「ユーザーが自由に条件やオプションを選べるようにしたい」といった場面では 設定画面(UserFormを使った設定フォーム) を作ると便利です。
初心者向けに、コード例やテンプレートをかみ砕いて説明します。


基本の考え方

  • 設定画面とは?
    ユーザーが「処理条件」「表示オプション」「対象範囲」などを選んで、後続の処理に反映させるためのフォーム。
  • 用途:
    • レポート作成時の条件指定
    • データ抽出の範囲選択
    • 出力形式の選択
  • 流れ:
    1. UserFormに入力欄(TextBox、ComboBox、CheckBoxなど)を配置。
    2. 「OKボタン」で選択内容を変数に保存。
    3. 後続の処理でその変数を利用。

テンプレ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で ユーザーが自由に条件を選べる便利な設定フォーム を簡単に作成できます。

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