エクセルマクロで、Replace関数を使って文字を置換するコードを記載しています。
このページのマクロコードは、コピペで使えます。
ぜひお試しください😉
Replace関数(特定文字を置換)
以下のマクロを実行すると、指定範囲内にある特定文字を一括置換します。
Sub 特定文字を一括置換()
Range("A1:B10").Replace "リンゴ", "ブドウ"
End Sub
マクロ実行前
マクロ実行後
「リンゴ」を「ブドウ」にまとめて置換します。
Replace関数(複数文字を置換)
以下のマクロを実行すると、配列を使って複数文字を置換します。
Sub 複数の文字列を一括置換()
Dim replaceData As Range
Dim findList As Variant
Dim replacement As String
Dim i As Long
'置換する範囲
Set replaceData = Range("A1:A6")
'置換したい文字を複数指定
findList = Array("リンゴ", "オレンジ", "バナナ")
'置換後の文字
replacement = "フルーツ"
'置換実行
For i = LBound(findList) To UBound(findList)
replaceData.Replace What:=findList(i), replacement:=replacement, LookAt:=xlPart, MatchCase:=False
Next i
End Sub
マクロ実行前
マクロ実行後
「Array」で指定した文字がある場合、「フルーツ」に置換します。
Replace関数(特定文字を削除)
以下のマクロを実行すると、特定範囲内にある指定文字を一括削除します。
Sub 特定文字を一括削除()
Range("A1:B10").Replace "ジュース", ""
End Sub
マクロ実行前
マクロ実行後
「ジュース」を空白に置換します。
Replace関数(半角スペース削除)
以下のマクロを実行すると、範囲内にある不要な半角スペースを削除します。
Sub 半角スペースを一括削除()
Range("A1:B10").Replace " ", ""
End Sub
マクロ実行前
連続したスペースは入れていません。
マクロ実行後
半角スペースを置換で削除します。
Replace関数(全角スペース削除)
以下のマクロを実行すると、範囲内にある不要な全角スペースを削除します。
Sub 全角スペースを一括削除()
Range("A1:B10").Replace " ", ""
End Sub
マクロ実行前
連続したスペースは入れていません。
マクロ実行後
全角スペースを一括削除します。
Replace関数(全角スペース削除・半角スペース削除)
以下のマクロを実行すると、範囲内にある不要なスペースを削除します。
Sub スペースを一括削除()
Range("A1:B10").Replace " ", ""
Range("A1:B10").Replace " ", ""
End Sub
マクロ実行前
連続したスペースは入れていません。
マクロ実行後
全角スペースと半角スペースを一括削除します。
Replace関数(連続した全角半角スペース削除)
以下のマクロを実行すると、範囲内にある不要なスペースを削除します。
Sub 連続した全角半角スペースを削除()
Dim rangeToReplace As Range
Dim cell As Range
' 置換対象のテキスト範囲を指定
Set rangeToReplace = Range("A2:B10")
' 空白文字を削除
For Each cell In rangeToReplace
cell.Value = Replace(cell.Value, " ", "")
cell.Value = Replace(cell.Value, " ", "")
Next cell
End Sub
マクロ実行前
連続した全角半角スペースが入っているパターン
マクロ実行後
スペースを一括削除します。
Replace関数(改行コードを置換)
以下のマクロを実行すると、改行コードをまとめて置換します。
Sub 改行コードを置換()
Dim i As Long
For i = 1 To 5
Cells(i, 2) = Replace(Cells(i, 1).Value, vbLf, "")
Next i
End Sub
マクロ実行前
マクロ実行後
A列のセル内にある改行コードを置換した結果を、B列に出力します。
Replace関数(5桁の数字の末尾を0へ置換)
以下のマクロを実行すると、数値の一部を置換します。
Sub 数字の一部を置換()
Dim cell As Range
Dim originalValue As String
Dim replacedValue As String
' A列の各セルをループ
For Each cell In Range("A1:A5")
' セルの値を文字列として取得
originalValue = CStr(cell.Value)
' セルの値が5桁の数字である場合のみ処理を行う
If Len(originalValue) = 5 And IsNumeric(originalValue) Then
' 末尾を0に置換した値を作成
replacedValue = Left(originalValue, 4) & "0"
' セルの値を置換した値に更新
cell.Value = replacedValue
End If
Next cell
End Sub
マクロ実行前
マクロ実行後
5桁の数字の末尾を 0に置き換えます。
この記事がお役に立ちますと幸いです。
「ExcelVBA自動化のすべて ~35の事例で課題解決力を身につける~」
業務改善コンサルタントが教える ビジネスの現場で役立つExcelVBAの知識を解説
基本的な解決法と、応用例も紹介しています!