教えて!ExcelVBA!

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

【ExcelVBA フォーム&コントロール】リストボックスの全てのデータを削除する方法を教えて!

構文

構文は以下の通りです。

リストボックス名.Clear

解説

リストボックスに表示されている全てのデータを削除するには、Clearメソッドを使用します。

使い方

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

Private Sub CommandButton1_Click()
    ' ListBox1のデータを削除
    ListBox1.Clear
End Sub

上記は、ボタンをクリックするとリストボックスのデータが削除される内容となります。

プログラミング例

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

(例1)ユーザーフォーム上の閉じるボタンでリストボックスのデータを削除する

ユーザーフォーム上に閉じるボタンを配置し、そのボタンがクリックされたときにリストボックスのデータを削除します。

Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
    ' フォームが閉じられる際にListBox1のデータを削除
    If CloseMode = vbFormControlMenu Then
        ListBox1.Clear
    End If
End Sub

(例2)シートの特定セルにデータが入力された時にリストボックスデータを削除する

シート上の特定のセルにデータが入力された場合にリストボックスのデータを削除します。

Private Sub Worksheet_Change(ByVal Target As Range)
    ' 条件:C2セルにデータが入力されたらListBox1のデータを削除
    If Target.Address = "$C$2" And Target.Value <> "" Then
        ListBox1.Clear
    End If
End Sub

まとめ

Clearメソッドを使用すると、リストボックスに表示されている全てのデータを削除することができます。データは一時的に削除されますが、フォームのInitializeイベントプロシージャーなどでデータを設定している場合は、フォームを再表示すれば元に戻せます。是非活用してください。