Validate処理の基本
Excel VBAで「入力値が正しいかチェックしたい」「数値や日付だけ受け付けたい」といった場面では Validate処理(入力検証) が重要です。
初心者向けに、コード例やテンプレートをかみ砕いて説明します。
基本の考え方
- Validate処理とは?
ユーザーが入力した値を「正しい形式かどうか」確認する仕組み。 - よく使うチェック:
- 空欄チェック
- 数値チェック (
IsNumeric) - 日付チェック (
IsDate) - 範囲チェック(例:1~100の間かどうか)
- メリット:
- 入力ミスを防ぐ
- 不正なデータをシートに書き込まない
- エラーを事前に回避できる
テンプレ1:空欄チェック
UserFormに TextBox1 と CommandButton1 を配置。
Private Sub CommandButton1_Click()
If TextBox1.Value = "" Then
MsgBox "値を入力してください"
Else
MsgBox "入力された値は " & TextBox1.Value
End If
End Sub
VB- ポイント:
- 空欄なら警告を出す。
- 入力があれば処理を続行。
テンプレ2:数値チェック
Private Sub CommandButton1_Click()
If IsNumeric(TextBox1.Value) Then
MsgBox "数値が入力されました: " & TextBox1.Value
Else
MsgBox "数値を入力してください"
End If
End Sub
VB- ポイント:
IsNumericで数値判定。- 数値以外なら警告。
テンプレ3:日付チェック
Private Sub CommandButton1_Click()
If IsDate(TextBox1.Value) Then
MsgBox "日付が入力されました: " & CDate(TextBox1.Value)
Else
MsgBox "正しい日付を入力してください (例: 2025/12/11)"
End If
End Sub
VB- ポイント:
IsDateで日付判定。CDateで文字列を日付型に変換。
テンプレ4:範囲チェック(1~100)
Private Sub CommandButton1_Click()
Dim num As Double
If IsNumeric(TextBox1.Value) Then
num = CDbl(TextBox1.Value)
If num >= 1 And num <= 100 Then
MsgBox "入力値は範囲内です: " & num
Else
MsgBox "1~100の範囲で入力してください"
End If
Else
MsgBox "数値を入力してください"
End If
End Sub
VB- ポイント:
- 数値かどうか判定。
- 範囲外なら警告。
テンプレ5:複数項目をまとめてValidate
UserFormに TextBox1(名前)、TextBox2(年齢)、CommandButton1 を配置。
Private Sub CommandButton1_Click()
If TextBox1.Value = "" Then
MsgBox "名前を入力してください"
Exit Sub
End If
If Not IsNumeric(TextBox2.Value) Then
MsgBox "年齢は数値で入力してください"
Exit Sub
End If
MsgBox "入力内容は正しいです! 名前: " & TextBox1.Value & " 年齢: " & TextBox2.Value
End Sub
VB- ポイント:
- 項目ごとにチェック。
- エラーがあれば処理を中断。
例題で練習
'例1:空欄チェック
' → CommandButton1_Click にコードを記述
'例2:数値チェック
' → CommandButton1_Click にコードを記述
'例3:日付チェック
' → CommandButton1_Click にコードを記述
'例4:範囲チェック
' → CommandButton1_Click にコードを記述
'例5:複数項目をまとめてValidate
' → CommandButton1_Click にコードを記述
VB初心者向けポイント
- Validate処理は「入力の見張り役」 → 不正な値を防ぐ。
- IsNumeric / IsDate を覚える → 数値・日付チェックの基本。
- Exit Subで処理中断 → エラー時に後続処理を止められる。
- 複数項目をまとめてチェック → 実務では必須。
- ユーザーにわかりやすいメッセージを出す → 入力ミスをすぐ修正できる。
👉 この「Validate処理テンプレ」を覚えておけば、Excel VBAで 入力チェックを組み込み、エラーを防ぎ、安心してデータを扱えるフォーム を作れるようになります。
