以前、EXCELのプルダウンリスト(データ入力形式をリスト形式)にする手順についてご紹介致しました。
今回は、EXCELのデータ入力形式をリスト形式をVBAを使って動的に設定する手順についてご紹介致します。
目次
考え方
リスト形式の設定にはValidationオブジェクトを使用する
データの入力規則をVBAを使って定義する場合は、Validationオブジェクトを使用します。
書き方としては、以下のような形になります。
'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:=「任意の値」か「名前定義」か「セルの範囲」」で入力します。
値の設定についての考え方は、以下の記事でも書いています。
Haru-Log


EXCEL セルの入力形式をリスト形式にする | Haru-Log
今回はEXCELの入力形式をプルダウンリスト変える手順について紹介いたします。 Excelのプルダウンリスト形式の入力とは プルダウンリスト形式の入力では下図のように表示さ…
書き方としては、以下の様な形となります。
'Sheet1のA1のセルに入力規則を設定します。
'元の値にはAとBとCを直接設定します。
With Worksheets("sheet1").Cells(1, 1).Validation _
'前回の設定を念のため消しておきます
.Delete
.Add _
Type:=xlValidateList, _
Formula1:="A,B,C"
End With
コマンドボタンで実行すると、下図の様な形になります。

その他のポイント
上記が設定において必要な考え方でしたが、実際にリスト形式に設定する時に考えるポイントは、以下のポイントも考えておくと良いかと思います。
①設定をする範囲
②リスト化する値
あらかじめ、上記2点を管理する手順をイメージしておくと手戻りが発生しないと思います。