Step8:AMPファイルで必要のない文字列をReplace関数で検索し削除する|Excelソフト
AMP変換シートに入力された「削除するHTML」を上の行から順に削除していきます。削除はReplace関数を使用することで、UTF-8ファイル全体から検索し空文字に置換ます。
Replace関数の構文
Replace(expression, find, replacewith[, start[, count[, compare]]])
- expression:置換の対象となる文字列
- find:検索する文字列
- replace:置き換える文字列
- start:(省略可)検索開始位置
- count:(省略可)置き換える文字列の個数
- compare:(省略可)文字列を比較するモード
compareの定数
| 定数 | 値 | 内容 | 
| vbBinaryCompare | 0 | バイナリモードで比較(大文字と小文字を区別する) | 
| vbTextCompare | 1 | テキストモードで比較(大文字と小文字を区別しない) | 
Replaceメソッドについても参照してください。
 
Replace関数を使用し文字列を削除する
下のAMP変換シートに入力されている「削除するHTML」の文字列を削除します。
 
変換開始ボタンのクリックイベント内に削除するコードを追加しました。
 
・5行目からDo Loopで下の行を順に取り出し、入力されていなければループを抜けます。
・Replace(sUtfBuf, Cells(lc, 2) & vbCr, "")は、UTF-8ファイルから、Cells(lc, 2) & vbCrを検索し空文字に置換ます。
・Cells(lc, 2) & vbCrと、 vbCrを付けたのは付けないと空行になるからです。
Private Sub CommandButton1_Click()
    Dim lc As Long
    
    If Range("F5") = "" Then
        MsgBox "変換ファイル名を入力してください。"
        Exit Sub
    End If
    If ExDir(Range("F5"), vbNormal) = "" Then
         MsgBox "変換ファイル名が存在しません。" _
             & vbCrLf & "処理を中止します。"
         Exit Sub
    End If
     
    ExUtfRead
    lc = 5
    Do
        If Cells(lc, 2) <> "" Then
            sUtfBuf = Replace(sUtfBuf, Cells(lc, 2) & vbCr, "")
            lc = lc + 1
        Else
            Exit Do
        End If
    Loop
    
    Debug.Print sUtfBuf
    
    ExUtfSave
End Sub
実行前のUTF-8ファイル
 
実行後のUTF-8ファイル
指定したStyleSheetの行が削除できています。
