データの入力規則
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