【VBA】入力規則でリストを設定する方法
今回はVBAを使って「データの入力規則」を自動設定する方法を紹介します。
「データの入力規則」はデータタブの画像の位置にある機能です。
他の人にデータ入力を頼むときに便利な機能ですよね。
「データの入力規則」はVBAからでも簡単に設定することができるので活用してみてください。
この記事では↓の内容が分かります。
- データの入力規則の設定方法
- リストを指定する方法
- 整数を指定する方法
- 日付を指定する方法
VBAでデータの入力規則を設定する方法
Sub Sample1()
'データの入力規則を設定(リスト)
'入力規則を設定するセルを指定
With Range("A1").Validation
'現在の設定を削除する(エラー対策)
.Delete
'入力規則を設定(リスト)
.Add Type:=xlValidateList, Formula1:="はい,いいえ,未回答"
End With
End Sub
サンプルコードを実行すると画像のようにリスト指定の入力規則を設定することができます。
入力規則の設定にはValidationオブジェクトを使います。このオブジェクトはRange.Validationとすることで得ることができます。
'入力規則を設定(リスト)
.Add Type:=xlValidateList, Formula1:="はい,いいえ,未回答"
実際に入力規則を設定しているのは、このAddメソッドです。
AddメソッドではTypeによって設定する入力規則をします。 (今回はリストを指定)
そして、リストの選択肢はFormula1で指定をします。
設定できる入力規則の種類(Type)は下表のようになります。
名前 | 値 | 説明 |
---|---|---|
xlValidateCustom | 7 | データは任意の式を使用して検証されます |
xlValidateDate | 4 | データ値 |
xlValidateDecimal | 2 | 数値 |
xlValidateInputOnly | 0 | ユーザーが値を変更した場合にのみ検証が行われます |
xlValidateList | 3 | 指定された一覧に値が存在する必要があります |
xlValidateTextLength | 6 | テキストの長さ |
xlValidateTime | 5 | 時刻値 |
xlValidateWholeNumber | 1 | 数値全体 |
入力規則の種類によってはAddメソッドでFormula1の他にOperatorやFormula2が必要になります。
Formula1,2とOperatorは入力規則を作るときの設定できる項目に対応しています。(画像のデータや最小値、最大値)
よく分からないときはマクロの記録で確認してみましょう。
整数を指定する方法
Sub Sample2()
With Range("A1").Validation
.Delete
.Add Type:=xlValidateWholeNumber, Operator:=xlBetween, Formula1:="1", Formula2:="5"
End With
End Sub
整数を指定するときはTypeにxlValidateWholeNumberを指定します。
サンプルコードではOperatorにxlBetweenを指定して、入力できる整数の最大値と最小値を指定しています。
Formula1が最小値、Formula2が最大値です。
日付を指定する方法
Sub Sample3()
With Selection.Validation
.Delete
.Add Type:=xlValidateDate, Operator:=xlBetween, Formula1:="1/1/2023", Formula2:="12/31/2023"
End With
End Sub
日付を指定するときはTypeにxlValidateDateを指定します。
サンプルコードではOperatorにxlBetweenを指定して、入力できる日付の最大と最小を指定しています。
Formula1が最小、Formula2が最大の日付となります。