データの入力規則
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プロパティの値によって異なります。
名前 | 内容 | 値 |
---|---|---|
xlValidateCustom | ユーザー設定 | 7 |
xlValidateDate | 日付 | 4 |
xlValidateDecimal | 小数点数 | 2 |
xlValidateInputOnly | すべての値 | 0 |
xlValidateList | リスト | 3 |
xlValidateTextLength | 文字列(長さ指定) | 6 |
xlValidateTime | 時刻 | 5 |
xlValidateWholeNumber | 整数 | 1 |
種類です。
名前 | 内容 | 値 |
---|---|---|
xlBetween | 二つの数式の範囲 | 1 |
xlNotBetween | 二つの数式の範囲外 | 2 |
xlEqual | 等しい | 3 |
xlNotEqual | 等しくない | 4 |
xlGreater | より大きい | 5 |
xlLess | より小さい | 6 |
xlGreaterEqual | 以上 | 7 |
xlLessEqual | 以下 | 8 |
値の範囲です。
名前 | 内容 | 値 |
---|---|---|
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