vba ドロップダウンリスト(入力規則)

Written by

Editorial Team

Reviewed by

Steve Rynearson

Translated by

masahiro yoshida

Last updated on 8月 1, 2022

このチュートリアルでは、VBAを使用してExcelのドロップダウンリストを操作するために入力規則を使用する方法を説明します。

Excelの入力規則では、セルや範囲に入力される値を制限することができます。正の整数、テキスト、日付など、さまざまな入力制限を行うことができます。このチュートリアルでは、VBAを使用してセル内に入力規則によるドロップダウンリストを作成する方法について見ていきます。

Creating a Drop Down List Using VBA ドロップダウンリスト 入力規則

注:入力規則によるドロップダウンリストの代わりに、ListBoxオブジェクトを使用することもできます。ListBoxはExcelのワークシートに追加することができます。ListBoxは、ListBoxの値が変更されるたびに実行されるマクロをトリガすることができます。ListBoxは、VBAのユーザーフォームでも使用されます。

VBA を使用してドロップダウンリストを作成する

セルA1にテキスト「Fruit」があり、セルA2に5つの項目からなるドロップダウンリストを作成します。

Creating a Drop Down List Using VBA ドロップダウンリスト 入力規則

Validation.Addメソッドを使用し、TypeパラメータにxlValidateListを指定することにします。Formula1パラメータを使用して、リストに必要な項目を追加することができます。 次のコードは、セル A2 に入力規則のドロップダウンリストを作成します。

Sub DropDownListinVBA()

Range("A2").Validation.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, _
Formula1:="Orange,Apple,Mango,Pear,Peach"

End Sub

結果は以下のようになります。

Creating a Drop Down List Using VBA ドロップダウンリスト 入力規則

VBAで名前付き範囲からドロップダウンリストを作成する

VBAでは、名前付き範囲に含まれる項目を、ドロップダウンリストに入力することができます。下図のような名前付き範囲「Animals」があるとします。

Using a Named Range 名前付き範囲

このとき、Formula1 パラメータには名前付き範囲の名前を設定します。次のコードは、名前付き範囲に基づいて、セル A7 に入力規則によるドロップダウンリストを作成します。

Sub PopulateFromANamedRange()

Range("A7").Validation.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, _
Formula1:="=動物"

End Sub

結果は次のようになります。

Populating A Drop Down List From a Named Range in VBA 名前付き範囲 ドロップダウンリスト

ドロップダウンリストを削除する

Validation.Deleteメソッドを使用すると、セルからドロップダウンリストを削除することができます。次のコードは、上記の例のセルA7からドロップダウンリストを削除します。

Sub RemoveDropDownList()

Range("A7").Validation.Delete

End Sub

VBAのコーディングが簡単に

VBAのコードをネットで探すのはもうやめましょう。AutoMacro – A VBA Code Builderを使えば、初心者が最小限のコーディング知識でゼロからコーディングできる上、ベテランのユーザーの時間節約にも役立つ多くの機能を備えています! alt text もっと詳しく

vba-free-addin

VBA Code Examples Add-in

Easily access all of the code examples found on our site.

Simply navigate to the menu, click, and the code will be inserted directly into your module. .xlam add-in.

(No installation required!)

Free Download

Return to VBA Code Examples