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
「あああああ」という文字の3つ目の文字から2つ分の「あ」を「亜」に置換してメッセージで表示します。
Sub test()
Dim str As String
str = “あああああ”
str = Replace(str, “あ”, “亜”, 3, 2)
MsgBox str
End Sub
氏名の一覧で姓と名の間をスペースで区切ってあるもののスペースを削除(「” ”」を「””」で置換)します。
Sub test()
Dim i As Long
For i = 2 To 10
Cells(i, 2).Value = Replace(Cells(i, 2).Value, “ ”, “”)
Next i
End Sub
こんな記事も書いています