戻る

ドライブ リストボックスのアイテムを削除する方法
動作環境 Windows2000(Win9Xもおそらく可) 開発環境 Visual Basic 6.0 (+SP4)
説明 WindowsメッセージCB_DELETESTRINGを利用してドライブ リストボックスからアイテムを削除します。
用意するもの:標準フォーム(Form1),ドライブリストボックス(Drive1),コマンドボタン(Command1),ラベル(Label1)


'変数の明示的な宣言を強制します
Option Explicit

'API関数SendMessageの利用を宣言します
'この関数の動作についてはMSDNライブラリを参照してください
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long

'API関数SendMessageの第2引数にに指定するWindowsメッセージ
'動作(機能):コンボボックスから項目を削除します
'wParamに指定する値:削除する項目のインデックス(最初の項目の場合は0)
'lparamに指定する値:利用しません。0を指定します
Private Const CB_DELETESTRING = &H144
'
Private Sub Command1_Click()

'API関数SendMessageの戻り値
'メッセージにCB_DELETESTRINGを指定した場合、関数が成功すると、
'残りのアイテム数を返します
Dim retVal As Long

'ドライブリストボックスの最初の項目を削除します
'2番目の項目を削除したい場合は第3引数に"1"を指定します
retVal = SendMessage(Drive1.hwnd, CB_DELETESTRING, 0, 0)

Label1.Caption = "現在の項目数: " & retVal

End Sub

Private Sub Form_Load()

Form1.Caption = "ドライブ リストボックスのアイテムを削除する方法"
Command1.Caption = "項目削除"
Label1.Caption = "現在の項目数: " & Drive1.ListCount

End Sub