Excel VBA セルをプルダウン(リスト)入力できるようにする-Validation

Excel VBAでセルをプルダウンまたはドロップダウン(リスト)入力できるようにする方法を記録します。

セルをリスト入力ができるようにするには、「Validation」オブジェクトを使います。

< スポンサーリンク >

 

書き方

Rangeオブジェクト.Validation.Add

 

A1~A4のセルのデータを元データとしてリスト入力できるようにしています。

Sub test()
     Selection.Cells.Validation.Add Type:=xlValidateList, Formula1:="=A1:A4"
End Sub

VBAリスト入力

VBAリスト入力

 

元データを直接指定する場合は、下記のように「,」(半角カンマ)で区切って書きます。

Sub test()
     Selection.Cells.Validation.Add Type:=xlValidateList, Formula1:="りんご,みかん,桃"
End Sub

VBAリスト入力

VBAリスト入力

 

VBAでValidationを設定しようとすると、元々セルがリスト入力になっている場合はエラーになります。

VBAリスト入力

VBAリスト入力

VBAで設定する場合は、「Delete」メソッドで一旦リスト入力を解除してから設定するとうまくいきます。

「Add」メソッド「Delete」メソッドを使う場合は、複数の処理ができる「With」ステートメントを使うと便利です。 

Sub test()
    With Selection.Cells.Validation
        .Delete
        .Add Type:=xlValidateList, Formula1:="=$A$1:$A$4"
    End With
End Sub

VBAリスト入力

 

別のシートのセルを参照する場合は、下記のように書きます。

Sub test()
     With Selection.Cells.Validation
        .Delete
        .Add Type:=xlValidateList, Formula1:="=Sheet2!$A$1:$A$4"
    End With
End Sub

VBAリスト入力

 

複数のセルも一度に設定できます。

Sub test()
     With ActiveSheet.Range("B:B").Validation
        .Delete
        .Add Type:=xlValidateList, Formula1:="=$A$1:$A$4"
    End With
End Sub

VBAリスト入力

 

< スポンサーリンク >



サブコンテンツ

関連ページ

このページの先頭へ