回答編集履歴

2

コード修正

2020/10/19 07:29

投稿

hatena19
hatena19

スコア33775

test CHANGED
@@ -108,7 +108,7 @@
108
108
 
109
109
  If Me("Chk" & i) = True Then
110
110
 
111
- strSearch = strSearch & "," & Me("Lbl" & i).Caption & "'"
111
+ strSearch = strSearch & ",'" & Me("Lbl" & i).Caption & "'"
112
112
 
113
113
  End If
114
114
 

1

コード追記

2020/10/19 07:28

投稿

hatena19
hatena19

スコア33775

test CHANGED
@@ -81,3 +81,55 @@
81
81
 
82
82
 
83
83
  ベタにIf文を繰り返し記述しましたが、チェックボックスの名前がChk1, Chk2, ・・・,Chk14 というように規則的になっていれば For文でまとめることもできます。
84
+
85
+
86
+
87
+ For文でまとめるコード例
88
+
89
+ ---
90
+
91
+ チェックボックスの名前 Chk1, Chk2, ・・・,Chk14
92
+
93
+ 対応するラベルの名前 Lbl1, Lbl2, ・・・,Lbl14
94
+
95
+
96
+
97
+ ```vba
98
+
99
+ Private Sub 検索ボタン_Click()
100
+
101
+ Dim strSearch As String
102
+
103
+
104
+
105
+ Dim i As Long
106
+
107
+ For i = 1 To 12
108
+
109
+ If Me("Chk" & i) = True Then
110
+
111
+ strSearch = strSearch & "," & Me("Lbl" & i).Caption & "'"
112
+
113
+ End If
114
+
115
+ Next
116
+
117
+
118
+
119
+ strSearch = "月数 In (" & Mid(strSearch, 2) & ")"
120
+
121
+
122
+
123
+ With Forms!フォーム名
124
+
125
+ .Filter = strSearch
126
+
127
+ .FilterOn = True
128
+
129
+ .AllowAdditions = False
130
+
131
+ End With
132
+
133
+ End Sub
134
+
135
+ ```