Excel VBA 文字列を別の文字に置換する-Replace関数

Excel VBAを使って姓名の文字のスペースを無くしたり、特定の文字別の文字置き換える記録です。

下図は、サンプルデータです。

< スポンサーリンク >





構文

指定された文字列を、指定した回数だけ別の文字列に置き換えます。開始位置から始まる文字列を返します。

Replace(expression, find, replace, [start, [count, [compare]]])

expression=必須。置換される元の文字列。

find=必須。検索する文字列。

replace=必須。置換後の文字列。

start=省略可能。expressionの文字列の開始位置を指定。省略した場合は、1が使用されます。

count=省略可能。文字列置換の回数。省略すると、既定値は-1になり、すべての検索された文字で置換を行います。

compare=省略可能。文字列を評価するときに使用する比較の種類を示す数値。※私は殆ど使わないので説明を省略します。

※Replace関数の戻り値は、置換が行われた文字列で、startで指定した位置から開始し、最後に文字列の末尾を指定します。元の文字列の先頭から最後までのコピーではありません。

 

特定の文字列を別の文字列に置換する例

「あいあいあ」という文字の「あ」を「亜」に置換してメッセージで表示します。

Sub test()
    Dim str As String
    str = “あいあいあ”
    str = Replace(str, “あ”, “亜”)
    MsgBox str
End Sub

VBAsplit

VBAsplit

 

「あああああ」という文字の3つ目の文字から2つ分の「あ」を「亜」に置換してメッセージで表示します。

Sub test()
    Dim str As String
    str = “あああああ”
    str = Replace(str, “あ”, “亜”, 3, 2)
    MsgBox str
End Sub

VBAsplit

VBAsplit

 

氏名の一覧で姓と名の間をスペースで区切ってあるもののスペースを削除(「” ”」を「””」で置換)します。

Sub test()
    Dim i As Long
    For i = 2 To 10
        Cells(i, 2).Value = Replace(Cells(i, 2).Value, “ ”, “”)
    Next i
End Sub

VBAsplit

VBAsplit

VBAsplit

 

< スポンサーリンク >※広告先のお問い合わせは広告主様にお願いします