『Excel VBA 表計算とプログラミング学習サイト』では、アフィリエイトプログラムを利用して商品を紹介しています。

【Excel VBA】プルダウンリスト(ドロップダウンリスト)

予め決められたリストの中からデータを選んでセルに入力する場合、プルダウンリスト(ドロップダウンリスト) を使用することで誤入力を防ぐことができますよ。

【Excel】プルダウンリスト(ドロップダウンリスト)

プルダウンで入力するセル範囲を選択した状態で、[データ] タブをクリックして、[データの入力規則]、[データの入力規則] の順に選択します。
 
Excelデータの入力規則でプルダウンリストを作成
 
下の図のように、[設定] の [入力値の種類] から [リスト] を選んで、[元の値] にたとえば「こばと,真理子,涼音」というように、項目を半角カンマで区切って入力しておきます。
 
Excelデータの入力規則ダイアログの設定
 
設定したセルをクリックすると右横に [▼] が現れるので、リストから選んでデータを入力してくださいな。
 
Excelドロップダウンリストからデータを入力
 
適当なセルに予めリストを作っておいて、それをプルダウンリストの項目にすることもできますよ。たとえば下の図のように B 列に「クッキー、チョコレート、ヨーグルト」というリストを作っておきます。
 
Excel予めプルダウンの項目を作成する

先ほどと同じように [データ] タブをクリックして、[データの入力規則]、[データの入力規則] の順に選択して、[設定] の [入力値の種類] から [リスト] を選びます。そして [元の値] の入力ボックスをクリックしてから、セル B2:B4 を選択します。すると下の図のように、入力内容をプルダウンリストから選ぶことができるようになりますよ。
 
Excel今日のおやつをプルダウンリストで選択

【VBA】Validationでプルダウンリストを作成する

VBA でプルダウンを作成することもできます。以下のサンプルコードを参考にしてください。

'[VBA] プルダウン作成サンプルコード

Sub CreateDropDown()
    Dim rng As Range
    Dim ws As Worksheet
    Dim dropDownCell As Range
    Dim listRange As Range
    
    ' ドロップダウンリストを作成するセルを指定
    Set dropDownCell = Range("B1")
    
    ' ドロップダウンリストの選択肢を設定する範囲を指定
    Set listRange = Range("A1:A3")
    
    ' ドロップダウンリストを作成するシートを指定
    Set ws = dropDownCell.Worksheet
    
    ' ドロップダウンリストを作成するセルをクリア
    dropDownCell.Clear
    
    ' ドロップダウンリストを作成するセルにデータの検証を設定
    With dropDownCell.Validation
        .Delete  ' 以前に設定されたデータの検証を削除
        
        ' プルダウンリストのデータの検証を追加
        .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:=xlBetween, Formula1:="=" & listRange.Address
        
        .IgnoreBlank = True  ' 空白セルを無視
        .InCellDropdown = True  ' セル内にプルダウンリストを表示
        .ShowInput = False  ' データの入力メッセージを非表示
        .ShowError = True  ' エラーメッセージを表示
    End With
End Sub

CreateDropDown マクロでは、Validationオブジェクトを使用して、指定したセルにプルダウンリストを作成するためのデータ検証を設定しています。これにより、ユーザーが指定された選択肢以外の値を入力できなくなります。
 
Validation(データ検証)は、特定のセル範囲に入力されるデータの制約や条件を設定します。データ検証を使用すると、ユーザーがセルに入力する値を制限したり、特定の形式に合致するようにしたりできます。たとえば、以下のような様々な制約を設定できます:
 
・数値範囲の制約:指定した数値範囲内の値のみを許可する。
・リストの制約:あらかじめ指定した値の中からのみ選択可能にする。
・文字列の制約:指定した文字数や形式に合致するようにする。
・日付や時刻の制約:指定した範囲内の日付や時刻のみを許可する。
・エラーメッセージの表示:特定の条件に合致しない場合にエラーメッセージを表示する。
 
データ検証は、特にデータ入力の制御やエラーの予防に役立ちます。例えば、プルダウンリストを作成したり、数値の範囲を制限したり、特定の文字列の長さを制約したりする場合に使用できます。

コメント