回答編集履歴

7

コード追記

2021/03/16 06:56

投稿

hatena19
hatena19

スコア33790

test CHANGED
@@ -269,3 +269,29 @@
269
269
  End Sub
270
270
 
271
271
  ```
272
+
273
+
274
+
275
+ If部分は下記の方がご希望にそうかも。
276
+
277
+
278
+
279
+ ```vba
280
+
281
+ If (Me.txtフリガナ = "" Or .Cells(wRow, 2) Like "*" & Me.txtフリガナ & "*") _
282
+
283
+ And (Me.txt電話番号 = "" Or .Cells(wRow, 6) Like "*" & Me.txt電話番号 & "*") _
284
+
285
+ And (Me.txt住所 = "" Or .Cells(wRow, 5) Like "*" & Me.txt住所 & "*") _
286
+
287
+ And ((Me.CheckBox1.Value = False And Me.CheckBox2.Value = False And Me.CheckBox3.Value = False) _
288
+
289
+ Or (Me.CheckBox1.Value And .Cells(wRow, 10) = Me.CheckBox1.Caption) _
290
+
291
+ Or (Me.CheckBox2.Value And .Cells(wRow, 10) = Me.CheckBox2.Caption) _
292
+
293
+ Or (Me.CheckBox3.Value And .Cells(wRow, 10) = Me.CheckBox3.Caption)) Then
294
+
295
+ ```
296
+
297
+ 2つチェックを入れたら、両方表示させる。

6

コード追記

2021/03/16 06:56

投稿

hatena19
hatena19

スコア33790

test CHANGED
@@ -137,3 +137,135 @@
137
137
  .Cells(wRow, 5)
138
138
 
139
139
  ですね。(コード修正済み)
140
+
141
+
142
+
143
+
144
+
145
+ ---
146
+
147
+
148
+
149
+ チェックボックスで種類を絞り込むのも追加したコード。
150
+
151
+ チェックボックスはチェックが入ったものを条件に絞り込む。
152
+
153
+ 複数チェックを入れると抽出されないので、チェックボックスよりオプションボタンの方がUIとしては適切。オプションボタンは一つしか選択できないので。
154
+
155
+
156
+
157
+ ```vba
158
+
159
+ Private Sub CheckBox1_Click()
160
+
161
+ Call SetListBox
162
+
163
+ End Sub
164
+
165
+
166
+
167
+ Private Sub CheckBox2_Click()
168
+
169
+ Call SetListBox
170
+
171
+ End Sub
172
+
173
+
174
+
175
+ Private Sub CheckBox3_Click()
176
+
177
+ Call SetListBox
178
+
179
+ End Sub
180
+
181
+
182
+
183
+ Private Sub txt住所_Change()
184
+
185
+ Call SetListBox
186
+
187
+ End Sub
188
+
189
+
190
+
191
+ Private Sub txtふりがな_Change()
192
+
193
+ Call SetListBox
194
+
195
+ End Sub
196
+
197
+
198
+
199
+ Private Sub txt電話番号_Change()
200
+
201
+ Call SetListBox
202
+
203
+ End Sub
204
+
205
+
206
+
207
+ Private Sub lst顧客リスト_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
208
+
209
+
210
+
211
+ rtnNo = Me.lst顧客リスト.Text
212
+
213
+ Debug.Print rtnNo
214
+
215
+ Unload Me '← フォームを閉じる
216
+
217
+ End Sub
218
+
219
+
220
+
221
+ Private Sub SetListBox()
222
+
223
+ Dim wRow As Long
224
+
225
+ Dim wLstRow As Long
226
+
227
+
228
+
229
+ Me.lst顧客リスト.Clear
230
+
231
+ wLstRow = 0
232
+
233
+
234
+
235
+ With Worksheets("顧客情報")
236
+
237
+ For wRow = 2 To .Range("A1").CurrentRegion.Rows.Count
238
+
239
+ If (Me.txtフリガナ = "" Or .Cells(wRow, 2) Like "*" & Me.txtフリガナ & "*") _
240
+
241
+ And (Me.txt電話番号 = "" Or .Cells(wRow, 6) Like "*" & Me.txt電話番号 & "*") _
242
+
243
+ And (Me.txt住所 = "" Or .Cells(wRow, 5) Like "*" & Me.txt住所 & "*") _
244
+
245
+ And (Me.CheckBox1.Value = False Or .Cells(wRow, 10) = Me.CheckBox1.Caption) _
246
+
247
+ And (Me.CheckBox2.Value = False Or .Cells(wRow, 10) = Me.CheckBox2.Caption) _
248
+
249
+ And (Me.CheckBox3.Value = False Or .Cells(wRow, 10) = Me.CheckBox3.Caption) Then
250
+
251
+
252
+
253
+ Me.lst顧客リスト.AddItem ""
254
+
255
+ Me.lst顧客リスト.List(wLstRow, 0) = wRow
256
+
257
+ Me.lst顧客リスト.List(wLstRow, 1) = .Cells(wRow, 2)
258
+
259
+ wLstRow = wLstRow + 1
260
+
261
+
262
+
263
+ End If
264
+
265
+ Next
266
+
267
+ End With
268
+
269
+ End Sub
270
+
271
+ ```

5

説明の改善

2021/03/16 06:31

投稿

hatena19
hatena19

スコア33790

test CHANGED
@@ -90,7 +90,7 @@
90
90
 
91
91
  If (Me.txtフリガナ = "" Or .Cells(wRow, 2) Like "*" & Me.txtフリガナ & "*") _
92
92
 
93
- And (Me.txt電話番号 = "" Or .Cells(wRow, 4) Like "*" & Me.txt電話番号 & "*") _
93
+ And (Me.txt電話番号 = "" Or .Cells(wRow, 6) Like "*" & Me.txt電話番号 & "*") _
94
94
 
95
95
  And (Me.txt住所 = "" Or .Cells(wRow, 5) Like "*" & Me.txt住所 & "*") Then
96
96
 
@@ -128,11 +128,11 @@
128
128
 
129
129
  ---
130
130
 
131
- ※追加されたシートの画像をみると、ふりがながB列、電話番号がD列、住所がE列なので、
131
+ ※追加されたシートの画像をみると、ふりがながB列、電話番号がF列、住所がE列なので、
132
132
 
133
133
  .Cells(wRow, 2)
134
134
 
135
- .Cells(wRow, 4)
135
+ .Cells(wRow, 6)
136
136
 
137
137
  .Cells(wRow, 5)
138
138
 

4

書式改善

2021/03/16 06:06

投稿

hatena19
hatena19

スコア33790

test CHANGED
@@ -124,6 +124,8 @@
124
124
 
125
125
  の列の部分はそれぞれ対応するデータの入っている列にしてください。
126
126
 
127
+
128
+
127
129
  ---
128
130
 
129
131
  ※追加されたシートの画像をみると、ふりがながB列、電話番号がD列、住所がE列なので、

3

説明追記

2021/03/16 06:04

投稿

hatena19
hatena19

スコア33790

test CHANGED
@@ -90,9 +90,9 @@
90
90
 
91
91
  If (Me.txtフリガナ = "" Or .Cells(wRow, 2) Like "*" & Me.txtフリガナ & "*") _
92
92
 
93
- And (Me.txt電話番号 = "" Or .Cells(wRow, 3) Like "*" & Me.txt電話番号 & "*") _
93
+ And (Me.txt電話番号 = "" Or .Cells(wRow, 4) Like "*" & Me.txt電話番号 & "*") _
94
94
 
95
- And (Me.txt住所 = "" Or .Cells(wRow, 4) Like "*" & Me.txt住所 & "*") Then
95
+ And (Me.txt住所 = "" Or .Cells(wRow, 5) Like "*" & Me.txt住所 & "*") Then
96
96
 
97
97
 
98
98
 
@@ -123,3 +123,15 @@
123
123
  .Cells(wRow, 4)
124
124
 
125
125
  の列の部分はそれぞれ対応するデータの入っている列にしてください。
126
+
127
+ ---
128
+
129
+ ※追加されたシートの画像をみると、ふりがながB列、電話番号がD列、住所がE列なので、
130
+
131
+ .Cells(wRow, 2)
132
+
133
+ .Cells(wRow, 4)
134
+
135
+ .Cells(wRow, 5)
136
+
137
+ ですね。(コード修正済み)

2

コード修正

2021/03/16 06:03

投稿

hatena19
hatena19

スコア33790

test CHANGED
@@ -115,3 +115,11 @@
115
115
  End Sub
116
116
 
117
117
  ```
118
+
119
+ .Cells(wRow, 2)
120
+
121
+ .Cells(wRow, 3)
122
+
123
+ .Cells(wRow, 4)
124
+
125
+ の列の部分はそれぞれ対応するデータの入っている列にしてください。

1

コード修正

2021/03/16 05:54

投稿

hatena19
hatena19

スコア33790

test CHANGED
@@ -90,9 +90,9 @@
90
90
 
91
91
  If (Me.txtフリガナ = "" Or .Cells(wRow, 2) Like "*" & Me.txtフリガナ & "*") _
92
92
 
93
- And (Me.txt電話番号 = "" Or .Cells(wRow, 2) Like "*" & Me.txt電話番号 & "*") _
93
+ And (Me.txt電話番号 = "" Or .Cells(wRow, 3) Like "*" & Me.txt電話番号 & "*") _
94
94
 
95
- And (Me.txt住所 = "" Or .Cells(wRow, 2) Like "*" & Me.txt住所 & "*") Then
95
+ And (Me.txt住所 = "" Or .Cells(wRow, 4) Like "*" & Me.txt住所 & "*") Then
96
96
 
97
97
 
98
98