【Excel VBA】UserFormで必須入力チェックをして未入力時に警告する方法
みなさんこんにちは。
Excel VBAでUserFormからデータを登録するとき、氏名や部署などの必須項目が空欄のまま登録されてしまうことがあるかと思います。
このような入力漏れは、登録処理の前にTextBoxの内容を確認し、未入力の場合に警告を表示することで防ぐことができます。
今回は、UserFormで必須入力チェックを行い、未入力時にMsgBoxで警告してSetFocusで入力欄へ戻す方法をご紹介したいと思います。
この記事はこんな人におすすめ
- UserFormで必須入力チェックを実装したい人
- TextBoxが空欄の場合に警告を表示したい人
- 入力漏れを防いでから登録処理へ進みたい人
今回作成するUserForm
今回は、UserFormへ「氏名」「部署」「電話番号」の3つのTextBoxと「登録」ボタンを配置します。

TextBoxが空欄か確認する
まずは氏名を入力するTextBox1が空欄か確認します。前後に半角スペースが入力されている場合も未入力として扱うため、Trimを使用します。
If Trim(Me.TextBox1.Value) = "" Then
'未入力の場合の処理
End If
MsgBoxで警告してSetFocusで戻す
未入力だった場合はMsgBoxで警告を表示し、SetFocusで該当するTextBoxへフォーカスを戻します。
If Trim(Me.TextBox1.Value) = "" Then
'========================================
' 氏名が未入力の場合は警告を表示する
'========================================
MsgBox "氏名を入力してください。", vbExclamation
'未入力のTextBoxへフォーカスを戻す
Me.TextBox1.SetFocus
'この後の登録処理を行わない
Exit Sub
End If

複数項目を順番にチェックする
必須項目が複数ある場合は、登録ボタンのクリックイベントで上から順番に確認すると分かりやすいです。
Private Sub CommandButton1_Click()
'========================================
' 氏名の必須入力チェック
'========================================
If Trim(Me.TextBox1.Value) = "" Then
MsgBox "氏名を入力してください。", vbExclamation
Me.TextBox1.SetFocus
Exit Sub
End If
'========================================
' 部署の必須入力チェック
'========================================
If Trim(Me.TextBox2.Value) = "" Then
MsgBox "部署を入力してください。", vbExclamation
Me.TextBox2.SetFocus
Exit Sub
End If
'========================================
' 電話番号の必須入力チェック
'========================================
If Trim(Me.TextBox3.Value) = "" Then
MsgBox "電話番号を入力してください。", vbExclamation
Me.TextBox3.SetFocus
Exit Sub
End If
'========================================
' すべて入力済みなら登録処理へ進む
'========================================
MsgBox "入力内容を登録します。", vbInformation
'ここにシートへの登録処理などを記述する
End Sub
登録処理は入力チェックの後に記述する
未入力項目がある場合はExit Subで処理を終了するため、その下の登録処理は実行されません。すべての必須項目が入力されている場合だけ、シートへの転記などへ進めます。

注意点
数値や日付など入力形式にも条件がある場合は、必須チェックの後に形式チェックを追加すると、より入力ミスを防ぎやすくなります。
最後に
いかがでしたでしょうか。
今回は、Excel VBAのUserFormで必須入力チェックを行い、未入力時に警告する方法をご紹介しました。
MsgBox・SetFocus・Exit Subを組み合わせることで、入力漏れを防いでから登録処理へ進むことができます。
UserFormで入力画面を作成するときに、少しでも参考になれば幸いです。
開発依頼について
ココナラでWebスクレイピング開発サービスを出品しております。
自分で開発をしようと思ったけど、VBAでのネット記事が少なく困っている方も多いかと思います。
そんな方はいつでもお気軽にご相談ください。
また、本ブログからご依頼いただいた方については割引特典がございますので、
ご不明点と合わせてメッセージをいただけると幸いです。
Excelにてブラウザ操作自動化ツールを作成します その作業、webスクレイピングを使って自動化しましょう!Webスクレイピング以外にもWebアプリの開発サービスも出品しております。
こちらについても、本ブログからご依頼いただいた方については割引特典がございますので、
お気軽にご相談ください。
スモールスケールのWebアプリ開発します 先ずはスモールスケールのWebアプリから始めませんか?
