0

DropButtonClick関数で入力を行うことにより、必要に応じてコンボボックスに入力しようとしています。簡単な例として:

Private Sub cmbAdvisor_DropButtonClick()
    cmbAdvisor.Clear

    cmbAdvisor.AddItem ("Test1")
    cmbAdvisor.AddItem ("Test2")
End Sub

これは正常に機能し、値はドロップダウンリストに表示されます。ただし、そのうちの1つをクリックすると、ドロップダウンリストが消え、コンボボックスに何も表示されない/空白が表示されるようになります。選択したアイテムが表示されると思います。問題は、この関数の内部でClearを実行していることだと思いますが、他にどのようにこれを実行しますか?

4

2 に答える 2

0

シートに埋め込まれたActiveXコントロールの場合:

activeXコンボボックスは、アイテム選択時のクリックイベントを、実際のドロップボタンクリックであるかのように処理します。つまり、状態オブジェクトが必要です。

Dim dropbuttonclicked As Boolean

Private Sub ComboBox1_DropButtonClick()
  dropbuttonclicked = Not dropbuttonclicked
  If dropbuttonclicked = True Then
    ComboBox1.Clear
    ComboBox1.AddItem ("Test1")
    ComboBox1.AddItem ("Test2")
  End If
End Sub

VBAユーザーフォームのVBAComboBoxの場合、Enter代わりに次を使用することをお勧めします。

Private Sub cmbAdvisor_Enter()
    cmbAdvisor.Clear
    cmbAdvisor.AddItem ("Test1")
    cmbAdvisor.AddItem ("Test2")
End Sub
于 2012-08-22T02:16:42.440 に答える