教えて!ExcelVBA!

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

ExcelVBAでフォーム内のリストボックスで選択されているデータを削除する方法

構文

構文は以下の通りです。

リストボックス名.RemoveItem (リストボックス名.ListIndex)

解説

リストボックス名は、リストボックスの名前です。RemoveItemは、リストボックス内の指定された項目を削除します。ListIndexは、リストボックスで現在選択されている項目のインデックス番号です。インデックス番号は、リストボックスの最初の項目が0番目、次が1番目となります。この構文を使うことで、ユーザーが選択したリストボックス内の項目を削除することができます。

プログラミング例

具体的なプログラミング例を紹介します。

Private Sub 削除ボタン_Click()
    Dim 選択された項目 As Integer
    ' 選択されている項目のインデックスを取得
    選択された項目 = リストボックス1.ListIndex
    ' リストボックスで何も選択されていない場合の処理
    If 選択された項目 = -1 Then
        MsgBox "削除する項目を選択してください。"
        Exit Sub
    End If
    ' 選択された項目を削除
    リストボックス1.RemoveItem 選択された項目
    MsgBox "選択された項目を削除しました。"
End Sub

上記のプログラムは、選択された項目という変数を定義し、リストボックスで選択された項目のインデックスを取得します。もし何も選択されていなかった場合(インデックスが -1 )、メッセージボックスで警告し、処理を中断します。ユーザーが選択した項目をRemoveItemで削除し、削除が完了したことを知らせるメッセージボックスを表示します。

まとめ

RemoveItemは、フォーム内のリストボックスで選択されているデータを削除します。選択されていない場合には警告メッセージを表示し、選択された項目があれば、その項目を削除します。