VBAでInstrを使用しReplace結果の確認をする
削除のVBAを下記に変更しました。
・プロシージャをFunctionからSubに変更しました。
・見つかればカウントする変数の「nf」と、見つからなければカウントする変数の「nd」を参照渡しで引数にしています。
・Replace後Instrで検索し、見つからなければ削除できているのでカウントします。
Private Sub MyDelHtml(nf As Long, nd As Long)
Dim lc As Long
nf = 0
nd = 0
lc = 5
Do
If Cells(lc, 2) <> "" Then
If InStr(1, sUtfBuf, Cells(lc, 2), vbTextCompare) > 0 Then
nf = nf + 1
sUtfBuf = Replace(sUtfBuf, Cells(lc, 2) & vbCr, "", , , vbTextCompare)
If InStr(1, sUtfBuf, Cells(lc, 2), vbTextCompare) = 0 Then
nd = nd + 1
End If
End If
lc = lc + 1
Else
Exit Do
End If
Loop
End Sub
削除プロシージャの呼び出し側です。
見つかった数を変換ファイル名の隣のセルに、削除できた数をその隣のセルに表示します。
Range("変換ファイル名").Offset(0, 1).Clear
Range("変換ファイル名").Offset(0, 2).Clear
MyDelHtml n1, n2
Range("変換ファイル名").Offset(0, 1) = n1
Range("変換ファイル名").Offset(0, 2) = n2
見つかった数の項目名を「有無」に、削除した数の項目名を「削除」にしました。
有無が削除するHTMLの数と同じで、削除した数も同じなら正常に実行できたことになります。