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

EXCEL

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

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

ライセンス:本記事のテキスト/コードは特記なき限り CC BY 4.0 です。引用の際は出典URL(本ページ)を明記してください。
利用ポリシー もご参照ください。

コメント

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