データの入力規則を一括設定させるマクロ、ポイントは、2つのインプット引数。
引数Areaは入力規則の設定範囲、Listは入力規則を設定した範囲を指定するのだが、
どちらもRangeオブジェクトで指定可能とした。
Sub test()
Call 入力規則の設定(Me.Range("D4:D15"), Me.Range("I2:I5"))
End Sub‘入力規則の設定
‘Area:入力規則の設定範囲 List:入力規則を設定した範囲
Sub 入力規則の設定(ByRef Area As Range, ByRef List As Range)
With Area.Validation
.Delete
.Add Type:=xlValidateList, _
AlertStyle:=xlValidAlertWarning, _
Operator:=xlBetween, _
Formula1:="=" & List.Address
.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = ""
.InputMessage = ""
.ErrorMessage = ""
.IMEMode = xlIMEModeNoControl
.ShowInput = True
.ShowError = False
End With
End Sub
少しハマったのが、Validationの以下のプロパティ指定。
Formula1:="=" & List.Address
ここで指定するアドレスの先頭には"="をつけること。
コメント