Excel/VBA

TOP

コンボボックスの使い方

目次

コンボボックスを配置する

コンボボックスをユーザーフォームに配置するには、ツールボックス内のコントロール「コンボボックス」をユーザーフォームにドラッグ&ドロップします。

コンボボックスの使用方法の説明画像です

コンボボックスにリストを入れる

コンボボックスとは、下記図のように入力する値をリストとして表示させることができます。

コンボボックスの使用方法の説明画像です

コンボボックスにリストを入れるには、下記のサンプルコードのように、「コンボボックス名.AddItem "入れたいリストの値"」とすることでリストを入れられます。

下記のサンプルコードでは、ユーザーフォーム起動時のInitializeイベントに記述しております。
Initializeイベントについてはこちらを参考にしてください。

サンプルコード


Private Sub UserForm_Initialize()
    
    Me.ComboBox1.AddItem "えんびつ"
    Me.ComboBox1.AddItem "消しゴム"
    Me.ComboBox1.AddItem "下敷き"
    
End Sub
        

コンボボックスのリストをシートから取得する

コンボボックスのリストは、シートからも取得することができます。

例えば下記のように、A列にリストを用意しておき、そのリストをそのままコンボボックスに反映させることができます。

コンボボックスの使用方法の説明画像です

下記のサンプルコードは、A列にリストがあることを想定し、1行目から最終行までの値をコンボボックスに格納しています。

サンプルコード


Private Sub UserForm_Initialize()

    Dim LastRow As Long, i As Long
    
    'A列の最終行を取得しています
    LastRow = Cells(Rows.Count, "A").End(xlUp).Row
    
    '1行目から最終行までループし、A列の値をコンボボックスに格納します
    For i = 1 To LastRow
        Me.ComboBox1.AddItem Cells(i, "A").Value
    Next i
    
End Sub
        

上記のサンプルコードを実装することで、リストを増やしても、コンボボックスに反映されます。

コンボボックスの使用方法の説明画像です

リストの項目以外、入力不可にする

コンボボックスのリスト内の項目以外、入力してほしくない場合は、プロパティウィンドウのStyleを「2 - fmStyleDropDownList」に変更すると、リスト内の項目以外入力できなくなります。

コンボボックスの使用方法の説明画像です

他のユーザーフォーム編