「excel2010 マクロ ドロップダウンリスト 自動作成」
「エクセル マクロ ドロップダウンリスト add」
といった検索で、このサイト・インストラクターのネタ帳へのアクセスが時折あります。
ドロップダウンリストを作成するExcelマクロ・VBAのコードを探している方による検索キーワードです。
Excelのドロップダウンリストはいくつかありますが、入力規則機能を使ったドロップダウンリストを作る、簡単なマクロをご紹介しておきます。
選択されているセルに入力規則のドロップダウンリストを作成するサンプルマクロ
以下のようなマクロで、選択されているセルに「東京」「大阪」「名古屋」という項目を持ったドロップダウンリストを作ることができます。
With Selection.Cells.Validation
.Delete
.Add _
Type:=xlValidateList, _
Formula1:="東京, 大阪, 名古屋"
End With
End Sub
作成だけならば、
Selection.Cells.Validation.Add _
Type:=xlValidateList, _
Formula1:="東京, 大阪, 名古屋"
というコードでOKです。
ですが、既に入力規則が設定されているときには、実行時エラーが発生してしまいますので、設定済みの入力規則を削除してから、
With Selection.Cells.Validation
.Delete
その後、作成を行っています。
.Add _
Type:=xlValidateList, _
Formula1:="東京, 大阪, 名古屋"
ValidationオブジェクトのAddメソッドの引数・Typeに定数・xlValidateListを指定して、引数Formula1にリストの項目を指定すればOKです。
選択されているセルではなく、例えばA1:A10セルにドロップダウンリストを作成したいのなら、
With Range("A1", "A10").Validation
.Delete
.Add _
Type:=xlValidateList, _
Formula1:="東京, 大阪, 名古屋"
End With
で、OKです。ループを回す必要はありません。
ワークシートに入力されているデータをドロップダウン表示するサンプルマクロ
入力規則のドロップダウンリストには、シートに入力されているデータを表示させることも可能です。同じことをVBAから行うのなら以下のようなマクロです。
With Selection.Cells.Validation
.Delete
.Add _
Type:=xlValidateList, _
Formula1:="=マスタ!$G$1:$G$7"
End With
End Sub
上記のマクロを実行すると「マスタ」という名前のワークシートのG1:G7セルに入力されている値がドロップダウンリストに表示されるようになります。
先のマクロと違うのは、Validation.Addメソッドの引数・Formula1だけです。
先のマクロでは、
Formula1:="東京, 大阪, 名古屋"
となっていましたが、このマクロでは、
Formula1:="=マスタ!$G$1:$G$7"
としています。
ドロップダウン表示させたいデータが、同じワークシートのG1:G7セルに存在している場合は、
Formula1:="=$G$1:$G$7"
です。
最終更新日時:2023-06-13 15:57
- Newer:スライドを画像として保存するPowerPointマクロ
- Older:曜日判定を行うGASスクリプト
Home » Excel VBA Rangeオブジェクト » 入力規則・Validation » VBAでドロップダウンリストを作成する