回答編集履歴
1
コメントでの要件追加を踏まえたコードを追記
test
CHANGED
@@ -61,3 +61,131 @@
|
|
61
61
|
|
62
62
|
|
63
63
|
参考) [https://www.relief.jp/docs/excel-vba-for-next-from-a-to-z.html](https://www.relief.jp/docs/excel-vba-for-next-from-a-to-z.html)
|
64
|
+
|
65
|
+
|
66
|
+
|
67
|
+
|
68
|
+
|
69
|
+
|
70
|
+
|
71
|
+
|
72
|
+
|
73
|
+
# 追記 2020-12-04 23:40
|
74
|
+
|
75
|
+
|
76
|
+
|
77
|
+
コメントでいただいた要件を踏まえたサンプルコードです。
|
78
|
+
|
79
|
+
|
80
|
+
|
81
|
+
|
82
|
+
|
83
|
+
## メイン処理側の呼び出し例
|
84
|
+
|
85
|
+
|
86
|
+
|
87
|
+
別途作成した str_check関数 を条件として行削除するコード例。
|
88
|
+
|
89
|
+
|
90
|
+
|
91
|
+
```VBA
|
92
|
+
|
93
|
+
|
94
|
+
|
95
|
+
If str_check(cellValue) Then
|
96
|
+
|
97
|
+
' i 行を削除
|
98
|
+
|
99
|
+
Rows(i).Delete
|
100
|
+
|
101
|
+
End If
|
102
|
+
|
103
|
+
|
104
|
+
|
105
|
+
```
|
106
|
+
|
107
|
+
|
108
|
+
|
109
|
+
## チェック関数例
|
110
|
+
|
111
|
+
|
112
|
+
|
113
|
+
同じファイルのシート cond のA列に A1セル A2セル ・・・ にチェック対象となるリストが作られている想定。
|
114
|
+
|
115
|
+
リストに空白はなく、各行を評価して空白セルが出てきたらリストの終了とみなす
|
116
|
+
|
117
|
+
|
118
|
+
|
119
|
+
|
120
|
+
|
121
|
+
```VBA
|
122
|
+
|
123
|
+
|
124
|
+
|
125
|
+
' チェック関数 : この関数の返り値が true の場合、行削除
|
126
|
+
|
127
|
+
Function str_check(check_strings As String) As Boolean
|
128
|
+
|
129
|
+
Dim tmpRet As Boolean ' チェック結果を管理しておく変数
|
130
|
+
|
131
|
+
tmpRet = True ' デフォルト True (=削除対象)と考える
|
132
|
+
|
133
|
+
|
134
|
+
|
135
|
+
|
136
|
+
|
137
|
+
' 仮に同じブックの cond シートのA列に対象外としたい文字列のリストがあるとした場合
|
138
|
+
|
139
|
+
Dim ws As Worksheet
|
140
|
+
|
141
|
+
Set ws = ActiveWorkbook.Sheets("cond") ' cond シート
|
142
|
+
|
143
|
+
|
144
|
+
|
145
|
+
Dim rowCount As Long ' cond シートの参照行番号
|
146
|
+
|
147
|
+
rowCount = 1
|
148
|
+
|
149
|
+
|
150
|
+
|
151
|
+
|
152
|
+
|
153
|
+
' cond シートのA列を1行目からたどる
|
154
|
+
|
155
|
+
' A列の rowCount 行が空白となった場合、リストの終了とみなす
|
156
|
+
|
157
|
+
Do Until ws.Cells(rowCount, 1).Value = ""
|
158
|
+
|
159
|
+
|
160
|
+
|
161
|
+
' 文字列と一致した場合、関数の結果を false としてチェックを終了する
|
162
|
+
|
163
|
+
If check_strings = ws.Cells(rowCount, 1).Value Then
|
164
|
+
|
165
|
+
tmpRet = False
|
166
|
+
|
167
|
+
Exit Do
|
168
|
+
|
169
|
+
End If
|
170
|
+
|
171
|
+
|
172
|
+
|
173
|
+
' リストの次の行を参照先としてループ
|
174
|
+
|
175
|
+
rowCount = rowCount + 1
|
176
|
+
|
177
|
+
Loop
|
178
|
+
|
179
|
+
|
180
|
+
|
181
|
+
|
182
|
+
|
183
|
+
' 関数の返り値を設定
|
184
|
+
|
185
|
+
str_check = tmpRet
|
186
|
+
|
187
|
+
End Function
|
188
|
+
|
189
|
+
|
190
|
+
|
191
|
+
```
|