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

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

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

< スポンサーリンク >





「Validation」オブジェクト構文

Rangeオブジェクト.Validation.Add

 

「Validation」の使用例

リスト入力できるようにする

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リスト入力

 

< スポンサーリンク >※広告先のお問い合わせは広告主様にお願いします