Excel VBA リスト形式(プルダウンリスト)の値をVBAで設定する

以前、EXCELのプルダウンリスト(データ入力形式をリスト形式)にする手順についてご紹介致しました。
今回は、EXCELのデータ入力形式をリスト形式をVBAを使って動的に設定する手順についてご紹介致します。
Advertisement
考え方
リスト形式の設定にはValidationオブジェクトを使用する
データの入力規則をVBAを使って定義する場合は、Validationオブジェクトを使用します。
書き方としては、以下のような形になります。
1 2 3 4 5 |
'Rangeで指定 Worksheets("sheet1").Range("A1").Validation 'Cellsで指定 Worksheets("sheet1").Cells(1, 1).Validation |
次の項で、Validationオブジェクトに対して、具体的に設定していきます。
Validationオブジェクトの設定にAddメソッドを使用する
validationオブジェクトに対して、内容を設定していきましょう。
設定にはAddメソッドを使用します。
リスト形式を設定するにあたって、最低限必要な引数は、以下の2つになります。
・Type
・Formula1
Typeは入力規則の種類を指定する引数です。「Type:=xlValidateList」と入力します。
なお、今回はリストなのでxlValidateListと入力しますが、他の入力規則を使用する場合は対応する内容を入力します。
・Formula1
Formula1は「Formula1:=「任意の値」か「名前定義」か「セルの範囲」」で入力します。
値の設定についての考え方は、以下の記事でも書いています。
書き方としては、以下の様な形となります。
1 2 3 4 5 6 7 8 9 10 |
'Sheet1のA1のセルに入力規則を設定します。 '元の値にはAとBとCを直接設定します。 With Worksheets("sheet1").Cells(1, 1).Validation _ '前回の設定を念のため消しておきます .Delete .Add _ Type:=xlValidateList, _ Formula1:="A,B,C" End With |
コマンドボタンで実行すると、下図の様な形になります。
その他のポイント
上記が設定において必要な考え方でしたが、実際にリスト形式に設定する時に考えるポイントは、以下のポイントも考えておくと良いかと思います。
①設定をする範囲
②リスト化する値
②リスト化する値
あらかじめ、上記2点を管理する手順をイメージしておくと手戻りが発生しないと思います。
-
前の記事
EXCEL VBA 入力されているセルの最終行数を取得する 2017.06.02
-
次の記事
EXCEL VBA シートの保護と保護の解除をする 2017.11.15