教えて!ExcelVBA!

ExcelVBAの基礎知識・書き方について紹介します。

【ExcelVBA フォーム&コントロール】リストボックスで選択されているデータを削除する方法を教えて!

構文

構文は以下の通りです。

リストボックス名.RemoveItem インデックス番号

解説

リストボックスのアイテムを削除するためには、RemoveItemメソッドを使用します。このメソッドは、リストボックスのアイテムを指定した位置から削除します。インデックス番号には、削除するアイテムの位置を示す整数値を指定します。リストボックスのインデックス番号は、通常0から始まる番号で識別されるため、最初のアイテムが0、次が1、といった具体的な位置を示します。

使い方

具体的な使い方を紹介します。

Private Sub CommandButton1_Click()
    If ListBox1.ListIndex <> -1 Then ' 選択があるか確認
        ListBox1.RemoveItem ListBox1.ListIndex ' 選択されたアイテムを削除
    End If
End Sub

上記は、ボタンをクリックした際に選択されたアイテムを削除する簡単な使い方の例です。リストボックスのアイテムを削除するためには、ユーザが選択したアイテムの位置(インデックス)を特定する必要があります。これは通常、リストボックスのListIndexプロパティを使用して取得できます。

プログラミング例

以下に、プログラミング例を紹介します。

Private Sub CommandButton1_Click()
    Dim i As Long
    For i = ListBox1.ListCount - 1 To 0 Step -1
        If ListBox1.Selected(i) Then
            ListBox1.RemoveItem i ' 選択されたアイテムを削除
        End If
    Next i
End Sub

この例では、複数のアイテムが選択されている場合にそれらを一度に削除します。ListBox1.Selected(i)を使用してアイテムが選択されているかどうかを確認しています。

まとめ

リストボックスから選択されたデータを削除するには、RemoveItemメソッドを使用します。RemoveItemメソッドを使用する事で、特定の位置のアイテムを削除することができます。是非活用してください。