【VBA】入力規則を設定する方法
今回はVBA(マクロ)でExcelの入力規則を設定する方法を紹介します。
入力規則はセルに入力できる内容をリストで指定したり、数字しかセルに入力できなくするExcelの機能です。
大勢が入力するExcelファイルには入力規則を設定するのがおすすめです。
ただ、入力欄が多いと手作業で入力規則を設定するのは大変です。
VBA(マクロ)で一気にラクラク設定してしまいましょう。
入力規則を設定する方法 (Validationオブジェクト)
入力規則の設定にはValidationオブジェクトを使用します。
Range.ValidationによってValidationオブジェクトを取得し、Addメソッドで入力規則を追加します。
Sub Sample()
With Range("A1").Validation
.Delete '既存の入力規則を削除
'入力規則を設定(リスト)
.Add _
Type:=xlValidateList, _
Formula1:="はい,いいえ,その他"
End With
End Sub
サンプルコードはA1セルにリストの入力規則を設定します。
(すでに入力規則があるセルにAddメソッドを使うとエラーとなるため、最初にDeleteしています)
Addメソッドの引数Typeによって入力規則の種類が変化します。
このコードではxlValidateListを入れているため、リストの入力規則となっています。
リストの候補は引数Formula1に設定します。

サンプルコードでは"はい,いいえ,その他"の3つを設定しています。
Sub Sample2()
With Range("A1").Validation
.Delete '既存の入力規則を削除
'入力規則を設定(範囲内の数値)
.Add _
Type:=xlValidateWholeNumber, _
Formula1:="1", _
Formula2:="10"
End With
End Sub
もう1つサンプルコードを紹介します。
こちらのコードでは入力できる数値の範囲を限定しています。
このコードを実行すると1~10までの数値のみ入力可能となります。(Formula1~Formula2の間)
入力規則の種類一覧(Type)
入力規則の種類(Type)は下記のものがあります。
名前 | 値 | 説明 |
---|---|---|
xlValidateCustom | 7 | データは、任意の式を使用して検証されます |
xlValidateDate | 4 | データ値 |
xlValidateDecimal | 2 | 数値 |
xlValidateInputOnly | 0 | ユーザーが値を変更した場合にのみ検証が行われます |
xlValidateList | 3 | 指定された一覧に値が存在する必要があります |
xlValidateTextLength | 6 | テキストの長さ |
xlValidateTime | 5 | 時刻値 |
xlValidateWholeNumber | 1 | 数値全体 |