VBA Replace 文字列を置換する

VBAのReplace関数で、文字列を置換するサンプルです。Excel、Accessとも同じです。

目次

サンプル Replace関数とは
  全ての文字を置換する
  一部文字を置換する
  文字列の中にある半角空白を取り除く
  指定した文字を削除する

Replace関数とは

Replace(1.文字列,2.置換前の文字,3.置換後の文字,[4.開始位置,[5.置換の回数,[6.比較の種類]])
  • 1つ目の文字列に対して、2つ目の引数の文にマッチした文字を、3つ目の引数の文字に置換えます。
  • 4つ目以降の引数は省略可能です。
  • 4の開始位置を省略した場合は1になります。
  • 5の置換の回数を省略した場合は、-1になります。-1はすべて置換します。
  • 以下は、MicrosoftのReplace関数のリンクです。
    https://docs.microsoft.com/ja-jp/office/vba/language/reference/user-interface-help/replace-function

全ての文字を置換する

Sub test1()
    Dim str1, str2 As String
    str1 = "あああーあああ"
    
    str2 = Replace(str1, "あ", "A")
    Debug.Print str2 'AAAーAAA
End Sub

5行目のReplace関数は、2つめの文字を3つ目の文字で全て置き換えます。

一部の文字を置換する

Sub test1()
    Dim str1, str2 As String
    str1 = "あああーあああ"
    
    str2 = Replace(str1, "あ", "A", 1, 2)
    Debug.Print str2 'AAあーあああ
End Sub

5行目のReplace関数は、5つめの引数で置換する回数を指定しています。
先頭から2回置換します。

文字列の中にある半角空白を取り除く

Sub test1()
    Dim str1 As String
    ' 半角空白あり(△あ△い△う△ +1△△)
    str1 = " あ い う +1  "
    
    str2 = Replace(str1, " ", "")
    Debug.Print str2 'あいう+1
End Sub

文字列の中にある半角空白を取り除くには、
置換前の文字を半角空白にして、置換後の文字を空文字にします。

指定した文字を削除する

Sub test1()
    Dim str1 As String
    str1 = "あいうえお"
    
    str2 = Replace(str1, "う", "")
    Debug.Print str2 'あいえお
End Sub

指定した文字を削除するには、
置換前の文字に削除する文字を指定して、置換後の文字を空文字にします。

関連の記事

Excel VBA 文字列を切り出す(Left/Mid/Right)

△上に戻る