Excelでデータ入力をしていると、次のようなことはありませんか?
- 入力ミスを防ぎたい
- プルダウンリストを自動で設定したい
- 数値や日付の入力制限をかけたい
このような場合は、VBAで入力規則を設定することで簡単に解決できます。
一度コードを書いておけば、入力ルールを自動で設定できるため、業務効率が大幅に向上します。
この記事でできること
- プルダウンリストを設定できる
- 数値・日付の入力制限ができる
- 複数セルに一括設定できる
- 実務で使えるコードが分かる
基本:入力規則を設定するコード
まずは基本の書き方です。
Option Explicit
Sub SetValidationBasic()
With Range("A1").Validation
.Delete
.Add Type:=xlValidateList, Formula1:="A,B,C"
End With
End Sub
このコードで、A1セルに「A・B・C」のプルダウンが設定されます。
コードのポイント解説
① .Delete
既存の入力規則を削除してから設定します。
これを入れないとエラーになることがあります。
② .Add
入力規則の本体です。
.Add Type:=種類, Formula1:=条件
プルダウンリストを設定する
最もよく使うパターンです。
Option Explicit
Sub SetDropdown()
With Range("A1:A10").Validation
.Delete
.Add Type:=xlValidateList, Formula1:="未処理,進行中,完了"
End With
End Sub
これでA1~A10にプルダウンが設定されます。
セル範囲を参照したプルダウン
別のセル範囲をリストとして使う場合はこちらです。
Option Explicit
Sub SetDropdownFromRange()
With Range("B1:B10").Validation
.Delete
.Add Type:=xlValidateList, Formula1:="=$D$1:$D$5"
End With
End Sub
D1:D5の値がプルダウンに表示されます。
数値の入力制限を設定する
1〜100の数値だけ入力できるようにする例です。
Option Explicit
Sub SetNumberValidation()
With Range("A1").Validation
.Delete
.Add Type:=xlValidateWholeNumber, _
Operator:=xlBetween, _
Formula1:="1", _
Formula2:="100"
End With
End Sub
日付の入力制限を設定する
Option Explicit
Sub SetDateValidation()
With Range("A1").Validation
.Delete
.Add Type:=xlValidateDate, _
Operator:=xlBetween, _
Formula1:="2024/01/01", _
Formula2:="2024/12/31"
End With
End Sub
文字数制限を設定する
5文字以内に制限する例です。
Option Explicit
Sub SetTextLengthValidation()
With Range("A1").Validation
.Delete
.Add Type:=xlValidateTextLength, _
Operator:=xlLessEqual, _
Formula1:="5"
End With
End Sub
エラーメッセージを設定する
入力エラー時にメッセージを表示できます。
With Range("A1").Validation
.Delete
.Add Type:=xlValidateWholeNumber, Operator:=xlBetween, Formula1:="1", Formula2:="100"
.ErrorTitle = "入力エラー"
.ErrorMessage = "1~100の数値を入力してください"
End With
入力メッセージ(ヒント)を表示する
With Range("A1").Validation
.Delete
.Add Type:=xlValidateList, Formula1:="A,B,C"
.InputTitle = "入力してください"
.InputMessage = "A・B・Cから選択してください"
End With
実務での活用例
- ステータス管理(未処理・完了など)
- 入力フォームの制御
- 数値・日付の入力ミス防止
- アンケートや申請フォーム作成
入力規則は、データ品質を保つために非常に重要な機能です。
よくあるエラーと対処法
① 入力規則が上書きされない
必ず .Delete を先に書いてください。
② リストが表示されない
カンマ区切りや参照範囲の指定ミスを確認してください。
③ コードは正しいのにエラーになる
コピー時に全角文字が混ざることがあります。
その場合は手入力し直すと解決することがあります。
まとめ
- 入力規則は
Validation.Addで設定できる - プルダウン・数値・日付など対応可能
- Deleteしてから設定が基本
- 入力ミス防止に非常に効果的
入力規則をVBAで設定できるようになると、Excelの入力精度が大きく向上します。
業務効率化にも直結するので、ぜひ活用してみてください。

コメント