VBAのコンボボックスからすべてのアイテムをプログラムで削除するにはどうすればよいですか?
残念ながら、それぞれを個別に削除する必要があります。
For i = 1 To ListBox1.ListCount
'Remove an item from the ListBox using ListBox1.RemoveItem
Next i
更新-私の答えに完全な解決策が含まれていなかった理由がわかりません:
For i = ListBox1.ListCount - 1 to 0 Step - 1
ListBox1.RemoveItem i
Next i
事前の擬似コード(実際のコードで更新):
Do While ComboBox1.ListCount > 0
ComboBox1.RemoveItem (0)
Loop
基本的に、アイテムがある間、最初のアイテムをコンボボックスから削除します。すべてのアイテムが削除されると(カウント= 0)、ボックスは空白になります。
方法2:さらに良い
ComboBox1.Clear
最も簡単な方法:
Combobox1.RowSource = "" 'Clear the list
Combobox1.Clear 'Clear the selected text
ControlFormatメソッドを使用できます。
ComboBox1.ControlFormat.RemoveAllItems
最良の方法:
Combobox1.items.clear();
ユーザーフォームコンボボックスで.clearメソッドを提供しないAccess VBAの場合、このソリューションは問題なく機能します。
If cbxCombobox.ListCount > 0 Then
For remloop = (cbxCombobox.ListCount - 1) To 0 Step -1
cbxCombobox.RemoveItem (remloop)
Next remloop
End If
me.Combobox1.Clear
これは一般的な方法です
Access 2013では、これをテストしたばかりです。
While ComboBox1.ListCount > 0
ComboBox1.RemoveItem 0
Wend
興味深いことに、[プロパティ]でアイテムリストを設定した場合、フォームビューを終了してデザインビューに戻ってもこれは失われません。