【Excel VBA】データの入力規則を一括設定させるマクロ(Rangeで指定可)

データの入力規則を一括設定させるマクロ、ポイントは、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

ここで指定するアドレスの先頭には"="をつけること。

コメント

タイトルとURLをコピーしました