Step14:変更文字の有無とReplaceで正常に置換ができたかチェックする|Excelソフト

Replaceで文字列を削除する時に、改行も同時に削除しているので念のためInstrを使い、間違いなくできているか確認することにします。

削除と同様に変更する文字の有無とReplaceで正常に置換ができたかInstrを使用しチェックします。

方法は削除と同じで、参照渡しで変更プロシージャに引数を渡し、変更前の文字が見つかった数と変更後の文字が見つかった数が返るので、変換ファイル名の横のセルに表示します。

AMP変換ソフト作成 メニューへ

スポンサーリンク





VBAでInstrを使用し置換前後を確認する

変更のVBAを下記に変更しました。
VBAでInstrを使用し置換前後を確認する

・見つかればカウントする変数の「nf」と、置換後見つかればカウントする変数の「nd」を参照渡しで引数にしています。
・Replace後Instrで検索し、変更後の文字列が見つかれば置換できているのでカウントします。

Private Sub MyChangeHtml(nf As Long, nd As Long)
    Dim lc As Long

    nf = 0
    nd = 0
    lc = 5
    Do
        If Cells(lc, 3) <> "" Then
            If Cells(lc, 4) <> "" Then
                If InStr(1, sUtfBuf, Cells(lc, 3), vbTextCompare) > 0 Then
                    nf = nf + 1
                    sUtfBuf = Replace(sUtfBuf, Cells(lc, 3), Cells(lc, 4), , , vbTextCompare)
                    If InStr(1, sUtfBuf, Cells(lc, 4), vbTextCompare) > 0 Then
                        nd = nd + 1
                    End If
                End If
            End If
            lc = lc + 1
        Else
            Exit Do
        End If
    Loop
End Sub

変更プロシージャの呼び出し側です。
引数の戻り値を変換ファイル名の横のセルに表示します。
変更プロシージャの呼び出し側

    Range("変換ファイル名").Offset(0, 3).Clear
    Range("変換ファイル名").Offset(0, 4).Clear
    MyChangeHtml n1, n2
    Range("変換ファイル名").Offset(0, 3) = n1
    Range("変換ファイル名").Offset(0, 4) = n2

変換ファイル名の横に、削除と変更の結合したセルを作成し、その下の行に「有無」「削除」と「有無」「変更」を作成しました。
変更結果も「有無」の数と「変更」の数が同じなら正常に置換できたことになります。
削除と変更の結合したセルを作成

スポンサーリンク






AMP変換ソフト作成 メニューへ

■■■
このサイトの内容を利用して発生した、いかなる問題にも一切責任は負いませんのでご了承下さい
■■■
当ホームページに掲載されているあらゆる内容の無許可転載・転用を禁止します


Copyright (c) Excel-Excel ! All rights reserved