回答編集履歴
3
説明修正
answer
CHANGED
@@ -7,6 +7,8 @@
|
|
7
7
|
もし、最初はリストボックスは空欄で、テキストボックスに入力した値と部分一致するものをリストボックスに表示させたいということなら一からコードを書き直す必要があります。
|
8
8
|
|
9
9
|
上記のような仕様の場合のコード例
|
10
|
+
ただし、最初(テキストボックスが空欄)の場合は、全リストを表示することにしました。
|
11
|
+
(その方が使いやすいだろうということで)
|
10
12
|
|
11
13
|
ユーザーフォームのモジュール
|
12
14
|
```vba
|
2
コード追加
answer
CHANGED
@@ -2,6 +2,42 @@
|
|
2
2
|
|
3
3
|
これはどのタイミングでしてますか。UserForm_Initialize ですか。
|
4
4
|
|
5
|
-
呈示のコードは、テキストボックスに入力した値と部分一致するデータがリストの先頭へ移動するというものですが、事前にリストボックスにリストを設定しておけば、正常に動作しました。
|
5
|
+
呈示のコードは、テキストボックスに入力した値と部分一致するデータがリストボックスにあったらリストの先頭へ移動するというものですが、事前にリストボックスにリストを設定しておけば、正常に動作しました。([リンク先](https://ukkari-ukachan.com/page-67)にもそのような動作という説明があります。)
|
6
6
|
|
7
|
-
もし、最初はリストボックスは空欄で、テキストボックスに入力した値と部分一致するものをリストボックスに表示させたいということなら一からコードを書き直す必要があります。
|
7
|
+
もし、最初はリストボックスは空欄で、テキストボックスに入力した値と部分一致するものをリストボックスに表示させたいということなら一からコードを書き直す必要があります。
|
8
|
+
|
9
|
+
上記のような仕様の場合のコード例
|
10
|
+
|
11
|
+
ユーザーフォームのモジュール
|
12
|
+
```vba
|
13
|
+
Option Explicit
|
14
|
+
Private aryList As Variant
|
15
|
+
|
16
|
+
Private Sub LstCandidate_Click()
|
17
|
+
Me.txtSchBox.Value = Me.LstCandidate.Value
|
18
|
+
End Sub
|
19
|
+
|
20
|
+
Private Sub txtSchBox_Change()
|
21
|
+
Dim search As String
|
22
|
+
search = Me.txtSchBox.Value
|
23
|
+
If search = "" Then '空欄の場合は全リスト表示
|
24
|
+
Me.LstCandidate.List = aryList
|
25
|
+
Exit Sub
|
26
|
+
End If
|
27
|
+
|
28
|
+
Me.LstCandidate.Clear
|
29
|
+
search = "*" & Me.txtSchBox.Value & "*"
|
30
|
+
|
31
|
+
Dim Itm As Variant
|
32
|
+
For Each Itm In aryList
|
33
|
+
If Itm Like search Then
|
34
|
+
Me.LstCandidate.AddItem Itm
|
35
|
+
End If
|
36
|
+
Next
|
37
|
+
End Sub
|
38
|
+
|
39
|
+
Private Sub UserForm_Initialize()
|
40
|
+
aryList = Worksheets(1).Range("A1:A10").Value 'シートのリスト
|
41
|
+
Me.LstCandidate.List = aryList
|
42
|
+
End Sub
|
43
|
+
```
|
1
誤字修正
answer
CHANGED
@@ -2,6 +2,6 @@
|
|
2
2
|
|
3
3
|
これはどのタイミングでしてますか。UserForm_Initialize ですか。
|
4
4
|
|
5
|
-
呈示のコードは、テキストボックスに入力した値と部分一致するデータがリストの先頭へ移動するというものですが、事前にリストボックスにリストを設定して
|
5
|
+
呈示のコードは、テキストボックスに入力した値と部分一致するデータがリストの先頭へ移動するというものですが、事前にリストボックスにリストを設定しておけば、正常に動作しました。
|
6
6
|
|
7
7
|
もし、最初はリストボックスは空欄で、テキストボックスに入力した値と部分一致するものをリストボックスに表示させたいということなら一からコードを書き直す必要があります。
|