Excel VBA 逆引き集 | UserForm の基本

Excel VBA
スポンサーリンク

UserForm の基本

Excel VBAで「ユーザーに入力画面を用意したい」「ボタンやテキストボックスを使って操作したい」といった場面では UserForm を使います。
初心者向けに、コード例やテンプレートをかみ砕いて説明します。


基本の考え方

  • UserFormとは?
    Excel上に「入力画面」を作れる機能。テキストボックス、コンボボックス、ボタンなどを配置できる。
  • 用途:
    • データ入力フォーム
    • 検索画面
    • 設定ダイアログ
  • 流れ:
    1. VBAエディタで「挿入 → UserForm」を選ぶ。
    2. コントロール(TextBox, CommandButtonなど)を配置。
    3. コードを書いて動きを定義。
    4. UserForm1.Show で表示。

テンプレ1:UserFormを表示する基本コード

Sub ShowMyForm()
    UserForm1.Show
End Sub
VB
  • ポイント:
    • UserForm1 はフォームの名前。
    • Show メソッドで画面を表示。

テンプレ2:テキストボックスの値を取得

UserFormに TextBox1CommandButton1 を配置した例。

Private Sub CommandButton1_Click()
    Dim inputValue As String
    inputValue = TextBox1.Value
    MsgBox "入力された値は " & inputValue & " です"
End Sub
VB
  • ポイント:
    • ボタンを押すとテキストボックスの値を取得。
    • TextBox1.Value で入力値を参照。

テンプレ3:シートに書き戻す

UserFormに TextBox1CommandButton1 を配置。

Private Sub CommandButton1_Click()
    Dim ws As Worksheet: Set ws = Worksheets("Data")
    ws.Range("A1").Value = TextBox1.Value
    MsgBox "シートに書き込みました!"
End Sub
VB
  • ポイント:
    • 入力値をシートのセルに書き戻す。
    • データ入力フォームとして利用可能。

テンプレ4:コンボボックスにリストを設定

UserFormに ComboBox1 を配置。

Private Sub UserForm_Initialize()
    ComboBox1.AddItem "東京"
    ComboBox1.AddItem "大阪"
    ComboBox1.AddItem "名古屋"
End Sub

Private Sub CommandButton1_Click()
    MsgBox "選択された都市は " & ComboBox1.Value & " です"
End Sub
VB
  • ポイント:
    • フォームが開いたときにリストを設定。
    • 選択された値を取得できる。

テンプレ5:フォームを閉じる

Private Sub CommandButton2_Click()
    Unload Me
End Sub
VB
  • ポイント:
    • Unload Me でフォームを閉じる。
    • 「キャンセル」ボタンなどに使う。

例題で練習

'例1:フォームを表示
Sub Example1()
    ShowMyForm
End Sub

'例2:入力値を取得
' → UserFormのボタンにコードを記述

'例3:シートに書き戻す
' → UserFormのボタンにコードを記述

'例4:コンボボックスにリストを設定
' → UserForm_Initialize にコードを記述

'例5:フォームを閉じる
' → 「閉じる」ボタンにコードを記述
VB

初心者向けポイント

  • UserFormは「入力画面」 → ユーザーに優しい操作を提供できる。
  • コントロールの名前を意識 → TextBox1, ComboBox1 など。
  • イベント駆動型 → ボタンを押したとき、フォームを開いたときにコードが動く。
  • シートとの連携が基本 → 入力値をシートに書き戻す、シートから読み込む。

👉 この「UserForm基本テンプレ」を覚えておけば、Excel VBAで 入力フォームやダイアログを簡単に作成 できるようになります。

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