vba ドロップダウンリスト(入力規則)
このチュートリアルでは、VBAを使用してExcelのドロップダウンリストを操作するために入力規則を使用する方法を説明します。
Excelの入力規則では、セルや範囲に入力される値を制限することができます。正の整数、テキスト、日付など、さまざまな入力制限を行うことができます。このチュートリアルでは、VBAを使用してセル内に入力規則によるドロップダウンリストを作成する方法について見ていきます。
注:入力規則によるドロップダウンリストの代わりに、ListBoxオブジェクトを使用することもできます。ListBoxはExcelのワークシートに追加することができます。ListBoxは、ListBoxの値が変更されるたびに実行されるマクロをトリガすることができます。ListBoxは、VBAのユーザーフォームでも使用されます。
VBA を使用してドロップダウンリストを作成する
セルA1にテキスト「Fruit」があり、セルA2に5つの項目からなるドロップダウンリストを作成します。
Validation.Addメソッドを使用し、TypeパラメータにxlValidateListを指定することにします。Formula1パラメータを使用して、リストに必要な項目を追加することができます。 次のコードは、セル A2 に入力規則のドロップダウンリストを作成します。
Sub DropDownListinVBA()
Range("A2").Validation.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, _
Formula1:="Orange,Apple,Mango,Pear,Peach"
End Sub
結果は以下のようになります。
VBAで名前付き範囲からドロップダウンリストを作成する
VBAでは、名前付き範囲に含まれる項目を、ドロップダウンリストに入力することができます。下図のような名前付き範囲「Animals」があるとします。
このとき、Formula1 パラメータには名前付き範囲の名前を設定します。次のコードは、名前付き範囲に基づいて、セル A7 に入力規則によるドロップダウンリストを作成します。
Sub PopulateFromANamedRange()
Range("A7").Validation.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, _
Formula1:="=動物"
End Sub
結果は次のようになります。
ドロップダウンリストを削除する
Validation.Deleteメソッドを使用すると、セルからドロップダウンリストを削除することができます。次のコードは、上記の例のセルA7からドロップダウンリストを削除します。
Sub RemoveDropDownList()
Range("A7").Validation.Delete
End Sub
VBAのコーディングが簡単に
VBAのコードをネットで探すのはもうやめましょう。AutoMacro – A VBA Code Builderを使えば、初心者が最小限のコーディング知識でゼロからコーディングできる上、ベテランのユーザーの時間節約にも役立つ多くの機能を備えています! もっと詳しく