0
コンボボックスに値を追加する場合、ユーザーがコンボボックスに文字を入力すると、コンボボックスのドロップダウン機能が表示されますそれらの文字を含むアイテムのみ、Google検索バーの動作と同様です。(Excel VBA)ComboBoxのオートコンプリート機能をドロップダウンリストとして表示する方法
Google Search Bar http://intersites.com/resources/uploads/suite_131/google_bar.png
コード編集:ここでは
Option Explicit
Option Compare Text
Public LC As Long
Public Count As Integer
Dim ComboArray() As String
'Initializes the userform, and saves values from database into an array
Private Sub UserForm_Initialize()
LC = Cells(1, Columns.Count).End(xlToLeft).Column
ReDim ComboArray(1 To LC)
For Count = 1 To LC
ComboArray(Count) = Cells(1, Count).Value
Next Count
End Sub
'Prevents changes if the down key is pressed?
Private Sub ComboBox_SiteName_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
Application.ScreenUpdating = False
End Sub
'Adds values to combobox if they contain the string input by user
Private Sub ComboBox1_Change()
Dim pos As Integer
Dim i As Integer
ComboBox1.Clear
For Count = 1 To LC
pos = InStr(1, ComboArray(Count), ComboBox1.Value)
If pos <> 0 Then
With ComboBox1
.AddItem Cells(1, Count)
End With
End If
Next Count
End Sub
、私が最初に(正しく動作)リスト項目を初期化しようとしました。私が求めているドロップダウン・エフェクトを作成するには、コードはすべてのアイテムのコンボボックスをクリアしてから、コンボボックス・エントリー・ポイント内の文字列と各値を比較し、その文字列を含む値だけを追加します。このコードは、コンボボックスに変更があるたびに、特に入力されたテキストが実行されるたびに実行されます。 –
私が尋ねることは、あなたが今までに望んでいた機能*に関して何を試してみたかです。今、あなたは問題を解決するためのゼロの試みを示しました。あなたはちょうどコンボボックスリストの値を初期化する方法を示しました。あなたは '_Change'イベントで何かする必要があることを知っています。あなたは 'VBA.Strings'クラスとそのクラスに関連する関数を知っていますか? –
私はドロップダウンで一致するデータをコンボボックスに表示させることができました。ただし、新しいテキストが入力されたときにドロップダウンボックスが自動的に表示されるようにしたいと思います。 –