MENU

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

  • URLをコピーしました!

以前、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:=「任意の値」か「名前定義」か「セルの範囲」」で入力します。

値の設定についての考え方は、以下の記事でも書いています。

書き方としては、以下の様な形となります。

'Sheet1のA1のセルに入力規則を設定します。
    
    '元の値にはAとBとCを直接設定します。
    With Worksheets("sheet1").Cells(1, 1).Validation _
        '前回の設定を念のため消しておきます
        .Delete
        .Add _
        Type:=xlValidateList, _
        Formula1:="A,B,C"
    End With

コマンドボタンで実行すると、下図の様な形になります。

その他のポイント

上記が設定において必要な考え方でしたが、実際にリスト形式に設定する時に考えるポイントは、以下のポイントも考えておくと良いかと思います。

①設定をする範囲
②リスト化する値

あらかじめ、上記2点を管理する手順をイメージしておくと手戻りが発生しないと思います。

スポンサーリンク
よかったらシェアしてね!
  • URLをコピーしました!
目次