VBA データの入力規則の設定



データの入力規則


VBAを使ってセルの入力規則を設定する方法です。
エクセル上だと[リボン]→[データ]→[データの入力規則]→・・・と同じ動作を再現します。


関数、メソッドなど
Range.Validationプロパティを使用し、Validationオブジェクトを設定します。
Range.Validation.Add(Type, AlertStyle, Operator, Formula1, Formula2)
最初設定するにはAddメソッドを使用します。

サンプルコード
Sub kisoku()
    'セル(I1:I4)に入力規則設定
    With Range(Cells(1, 9), Cells(4, 9)).Validation
        .Add Type:=xlValidateList, _
             Operator:=xlEqual, _
             Formula1:="=$A$1:$A$7"
    End With
End Sub


エクセルでの同じ設定をした場合は↓のような感じです。


解説
上記サンプルはリスト型で同一シート内にあるA1:A7の範囲を入力規則になるよう設定しています。 Validation.Addで入力規則の設定を開始しており、
Type:=は「リスト」や「整数」などのタイプの指定
Operator:=は「等しい」や「以上」など値の範囲などの指定
Formula1:=は元の値になるデータを選択しています。

Type以降に指定するプロパティはTypeプロパティの値によって異なります。

○Type 列挙
名前 内容
xlValidateCustom ユーザー設定 7
xlValidateDate 日付 4
xlValidateDecimal 小数点数 2
xlValidateInputOnly すべての値 0
xlValidateList リスト 3
xlValidateTextLength 文字列(長さ指定) 6
xlValidateTime 時刻 5
xlValidateWholeNumber 整数 1

種類です。


○Operator 列挙
名前 内容
xlBetween 二つの数式の範囲 1
xlNotBetween 二つの数式の範囲外 2
xlEqual 等しい 3
xlNotEqual 等しくない 4
xlGreater より大きい 5
xlLess より小さい 6
xlGreaterEqual 以上 7
xlLessEqual 以下 8

値の範囲です。


○AlertStyle 列挙
名前 内容
xlValidAlertInformation 情報 3
xlValidAlertStop 停止 1
xlValidAlertWarning 注意 2

エラーメッセージのアイコンです。



○Formula1、Formula2は必要に応じて値を入力します。



データの入力規則の削除

メソッドなど
Range.Validation.Delete


サンプルコード(パスワード設定なし)
Sub kisoku_del()
    'セル(I1:I4)に入力規則削除
    With Range(Cells(1, 9), Cells(4, 9)).Validation
        .Delete
    End With
End Sub