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の行が削除できています。