【Step7】VBAでフォーム作成!ユーザー入力をもっとスマートに

VBA

はじめに

「セルに直接入力してもらうと間違いが心配…」そんな時に役立つのが「ユーザーフォーム」!

ユーザーフォームを使えば、画面に専用の入力フォームを表示し、直感的な操作が可能になります。

今回は、初心者でも簡単にできる「ユーザーフォームの作成と使い方」を徹底解説します!


◆ ユーザーフォームってなに?

ExcelのVBAでは「UserForm」という専用の画面を作成して、テキストボックスやボタンを使った入力が可能です。

まさにアプリのような操作性をVBAで実現できます。


◆ ユーザーフォームの作成手順

  1. Alt + F11 でVBAエディタを開く
  2. 「挿入」→「ユーザーフォーム」を選択
  3. 左側のツールボックスから「テキストボックス」「ラベル」「コマンドボタン」などをドラッグして配置

ここでは、名前と年齢を入力するフォームを例に解説します。


◆ フォームの設計例

ユーザーフォームに以下を配置します:

  • Label1:「名前」
  • TextBox1(ユーザーが名前を入力)
  • Label2:「年齢」
  • TextBox2(ユーザーが年齢を入力)
  • CommandButton1(「登録」ボタン)

◆ コードの全体(UserForm1)

Private Sub CommandButton1_Click()

    Dim userName As String
    Dim userAge As String

    userName = TextBox1.Value
    userAge = TextBox2.Value

    ' 入力チェック(年齢が数字かどうか)
    If Not IsNumeric(userAge) Then
        MsgBox "年齢は数字で入力してください", vbExclamation
        Exit Sub
    End If

    ' ワークシートに出力(A列に名前、B列に年齢)
    Dim lastRow As Long
    lastRow = Sheets("Sheet1").Cells(Rows.Count, 1).End(xlUp).Row + 1

    Sheets("Sheet1").Cells(lastRow, 1).Value = userName
    Sheets("Sheet1").Cells(lastRow, 2).Value = userAge

    MsgBox "登録が完了しました!", vbInformation

    ' 入力欄クリア
    TextBox1.Value = ""
    TextBox2.Value = ""

End Sub

このコードでは、「登録」ボタンが押されたときに名前と年齢をシートに書き込みます。


◆ フォームを表示するマクロ

フォームは普通のマクロと同様に呼び出せます。

Sub ユーザーフォームを開く()
    UserForm1.Show
End Sub

このマクロをボタンに登録したり、ショートカット化すれば便利に使えます。


◆ フォーム入力のメリット

  • 入力ミスの防止(制限やチェックができる)
  • 見た目がわかりやすい(誰でも操作できる)
  • 業務の効率アップ(定型入力に最適)

まとめ

ユーザーフォームを使うと、VBAの世界が一気に広がります!

今回の基本をベースに、チェックボックス、リストボックス、カレンダーなど様々なUI要素を組み合わせてみてください。

業務の自動化+操作性の向上で現場でも「使えるVBA」が完成します!


📝 関連記事(予定)

  • 【Step8】複数シート間の自動転記!業務を完全自動化
  • 【Step9】VBAでファイルを一括処理!CSVやフォルダ操作の基本
タイトルとURLをコピーしました