Excel VBAでセルをプルダウンまたはドロップダウン(リスト)入力できるようにする方法を記録します。
セルをリスト入力ができるようにするには、「Validation」オブジェクトを使います。
< スポンサーリンク >
「Validation」オブジェクト構文
Rangeオブジェクト.Validation.Add
「Validation」の使用例
リスト入力できるようにする
A1~A4のセルのデータを元データとしてリスト入力できるようにしています。
Sub test()
Selection.Cells.Validation.Add Type:=xlValidateList, Formula1:="=A1:A4"
End Sub
元データを直接指定する場合は、下記のように「,」(半角カンマ)で区切って書きます。
Sub test()
Selection.Cells.Validation.Add Type:=xlValidateList, Formula1:="りんご,みかん,桃"
End Sub
エラーになる場合
VBAでValidationを設定しようとすると、元々セルがリスト入力になっている場合はエラーになります。
VBAで設定する場合は、「Delete」メソッドで一旦リスト入力を解除してから設定するとうまくいきます。
「Add」メソッド「Delete」メソッドを使う場合は、複数の処理ができる「With」ステートメントを使うと便利です。
Sub test()
With Selection.Cells.Validation
.Delete
.Add Type:=xlValidateList, Formula1:="=$A$1:$A$4"
End With
End Sub
別シートを参照する場合
別のシートのセルを参照する場合は、下記のように書きます。
Sub test()
With Selection.Cells.Validation
.Delete
.Add Type:=xlValidateList, Formula1:="=Sheet2!$A$1:$A$4"
End With
End Sub
複数セルの設定
複数のセルも一度に設定できます。
Sub test()
With ActiveSheet.Range("B:B").Validation
.Delete
.Add Type:=xlValidateList, Formula1:="=$A$1:$A$4"
End With
End Sub
こんな記事も書いています