はじめに
「セルに直接入力してもらうと間違いが心配…」そんな時に役立つのが「ユーザーフォーム」!
ユーザーフォームを使えば、画面に専用の入力フォームを表示し、直感的な操作が可能になります。
今回は、初心者でも簡単にできる「ユーザーフォームの作成と使い方」を徹底解説します!
◆ ユーザーフォームってなに?
ExcelのVBAでは「UserForm」という専用の画面を作成して、テキストボックスやボタンを使った入力が可能です。
まさにアプリのような操作性をVBAで実現できます。
◆ ユーザーフォームの作成手順
- Alt + F11 でVBAエディタを開く
- 「挿入」→「ユーザーフォーム」を選択
- 左側のツールボックスから「テキストボックス」「ラベル」「コマンドボタン」などをドラッグして配置
ここでは、名前と年齢を入力するフォームを例に解説します。
◆ フォームの設計例
ユーザーフォームに以下を配置します:
- 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やフォルダ操作の基本


