teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

2

コード修正

2020/10/19 07:29

投稿

hatena19
hatena19

スコア34367

answer CHANGED
@@ -53,7 +53,7 @@
53
53
  Dim i As Long
54
54
  For i = 1 To 12
55
55
  If Me("Chk" & i) = True Then
56
- strSearch = strSearch & "," & Me("Lbl" & i).Caption & "'"
56
+ strSearch = strSearch & ",'" & Me("Lbl" & i).Caption & "'"
57
57
  End If
58
58
  Next
59
59
 

1

コード追記

2020/10/19 07:28

投稿

hatena19
hatena19

スコア34367

answer CHANGED
@@ -39,4 +39,30 @@
39
39
  End Sub
40
40
  ```
41
41
 
42
- ベタにIf文を繰り返し記述しましたが、チェックボックスの名前がChk1, Chk2, ・・・,Chk14 というように規則的になっていれば For文でまとめることもできます。
42
+ ベタにIf文を繰り返し記述しましたが、チェックボックスの名前がChk1, Chk2, ・・・,Chk14 というように規則的になっていれば For文でまとめることもできます。
43
+
44
+ For文でまとめるコード例
45
+ ---
46
+ チェックボックスの名前 Chk1, Chk2, ・・・,Chk14
47
+ 対応するラベルの名前 Lbl1, Lbl2, ・・・,Lbl14
48
+
49
+ ```vba
50
+ Private Sub 検索ボタン_Click()
51
+ Dim strSearch As String
52
+
53
+ Dim i As Long
54
+ For i = 1 To 12
55
+ If Me("Chk" & i) = True Then
56
+ strSearch = strSearch & "," & Me("Lbl" & i).Caption & "'"
57
+ End If
58
+ Next
59
+
60
+ strSearch = "月数 In (" & Mid(strSearch, 2) & ")"
61
+
62
+ With Forms!フォーム名
63
+ .Filter = strSearch
64
+ .FilterOn = True
65
+ .AllowAdditions = False
66
+ End With
67
+ End Sub
68
+ ```