リストボックスの使い方

2025年06月26日

リストボックスでデータ一覧を表示する

リストボックスを使用すると下記のようにデータを一覧として表示できます。

リストボックスの使用方法の説明画像です

リストボックスでデータ格納方法

1、ユーザーフォームを作成し、リストボックスを追加します。

リストボックスの使用方法の説明画像です

2、追加したリストボックスのオブジェクト名を任意の名前に変更します。

リストボックスの使用方法の説明画像です

3、ユーザーフォーム上でF7キーを押してエディターを開き、Initializeを追加します。

リストボックスの使用方法の説明画像です

4、Initializeの処理に下記のコードを追加します。
(「リストボックスオブジェクト.AddItem "格納するデータ"」とすることでリストボックスにデータを追加できます)


Private Sub UserForm_Initialize()
    
    With Me.ListBox1
        
        .AddItem "リンゴ"
        .AddItem "バナナ"
        .AddItem "イチゴ"
        .AddItem "みかん"
        .AddItem "パイナップル"
        
    End With
    
End Sub
    

5、下記のユーザーフォームを表示させるコードを実行させると、データが格納されたリストが表示されます。
※下記のコードを標準モジュールに記述してください


Sub ユーザーフォーム表示()
    UserForm1.Show
End Sub
    

シート内のデータをリストボックスに表示させる

下記のように、シート内のデータをリストボックスで表示させる方法をご紹介いたします

リストボックスの使用方法の説明画像です

先ほどのInitializeの処理に下記のコードを記述します。


Private Sub UserForm_Initialize()
    
    Dim i As Long
    Dim LastRow As Long
    
    
    'A列の最終行を取得します
    LastRow = Cells(Rows.Count, "A").End(xlUp).Row
    
    
    '1行目から最終行まで繰り返し、AddItemでセルの値を格納していきます
    For i = 1 To LastRow
        Me.ListBox1.AddItem Cells(i, "A").Value
    Next i
    
End Sub
    

ユーザーフォームを表示させると、シート内のデータがリストボックスに表示されます。

リストボックスの使用方法の説明画像です

リストボックス内のデータを削除する

リストボックスで選択された項目を削除する方法をご紹介します。
これからご紹介する方法は、選択するデータが単一の場合に使用できます。
(リストボックスのプロパティ「MultiSelect」が「fmMultiSelectSingle」となっている場合のみ使用できます)

リストボックスの使用方法の説明画像です

1、ユーザーフォームにボタンを配置します。

リストボックスの使用方法の説明画像です

2、配置したボタンの名前を「削除」に変更し、ボタンの上でダブルクリックを行いエディタに移動します。

リストボックスの使用方法の説明画像です

3、ボタンのクリックイベントに下記のコードを記述します。


Private Sub CommandButton1_Click()
    
    'インデックスが-1の場合はリストボックスの項目が選択されていないため、Elseの処理に入れます
    If Me.ListBox1.ListIndex <> -1 Then
        Me.ListBox1.RemoveItem Me.ListBox1.ListIndex
    Else
        MsgBox "削除する項目が選択されていません"
    End If
    
End Sub
    

4、ユーザーフォームを起動し、作成した「削除」ボタンをクリックすると、選択された項目が削除できます。

リストボックス内のデータを更新する

リストボックスで選択された項目を更新する方法をご紹介します。
これからご紹介する方法も削除時同様、選択するデータが単一の場合に使用できます。



1、ユーザーフォームにボタンを配置します。

リストボックスの使用方法の説明画像です

2、配置したボタンの名前を「更新」に変更し、ボタンの上でダブルクリックを行いエディタに移動します。

リストボックスの使用方法の説明画像です

3、ボタンのクリックイベントに下記のコードを記述します。


Private Sub CommandButton2_Click()

    If Me.ListBox1.ListIndex = -1 Then
        MsgBox "更新する項目が選択されていません"
        Exit Sub
    End If
    
    'InputBoxで更新する値をユーザーに入力してもらいます。
    Dim InputBoxStr As String
    InputBoxStr = InputBox("更新する値を入力してください", "リストボックス値更新", Me.ListBox1.List(Me.ListBox1.ListIndex))
    
    'InputBoxがキャンセル又は空白の場合は処理を終了させます。
    If InputBoxStr = "" Then
        MsgBox "キャンセルされました"
        Exit Sub
    End If
    
    'リストの値を更新します
    Me.ListBox1.List(Me.ListBox1.ListIndex) = InputBoxStr
    
End Sub
    

InputBoxの使用方法については、こちらの記事をご参考ください。


4、ユーザーフォームを起動し、項目を選択して「更新」ボタンをクリックすると、InputBoxが表示されます。
「OK」をクリックすると、変更がリストボックスに反映されます。

リストボックスの使用方法の説明画像です

他のユーザーフォーム編