Replace関数のポイント(基本)

Replace関数は、いろいろと応用がきく関数だ。実務上でもよく使うと思う。このページでは、Replace関数の基本的な使い方とVBAエキスパート試験のポイントをまとめた。

基本的な使い方

Replace関数は文字列を置き換える関数だ。元の文字列の中から特定の文字列を探し出し、別の文字列に変換する。

【書式】
Replace(元の文字列, 検索文字列, 置換文字列)

次のプロシージャはReplace関数の使用例だ。文字列「ABCDE」の中から「B」を探し出し、「*」に変換して返す。

'Bを*に変換する
Sub Test()
    Dim str As String
    str = "ABCDE"
    MsgBox Replace(str, "B", "*")
End Sub

検索文字列や置き換え文字列は、1文字でなくてもかまわない。

'BCを12345に変換する
Sub Test()
    Dim str As String
    str = "ABCDE"
    MsgBox Replace(str, "BC", "12345")
End Sub

検索文字列が見つからなかった場合、元の文字列をそのまま返す。

'Xは見つからないのでABCDEを返す
Sub Test()
    Dim str As String
    str = "ABCDE"
    MsgBox Replace(str, "X", "*")
End Sub

引数の順番に気をつけたい。

○ Replace(元の文字列, 検索文字列, 置換文字列)
× Replace(元の文字列, 置換文字列, 検索文字列)

スペースを取り除く

Replace関数を使うと、文字列の中から余分なスペースを取り除くことができる。置換文字列に空の文字列「””」を指定するのがポイントだ。

'A B CをABCに変換する
Sub Test()
    Dim str As String
    str = "A B C"
    MsgBox Replace(str, " ", "")
End Sub

スペースを除去する関数としてTrim関数がある。しかしTrim関数は文字列の両側からスペースを取り除くだけだ。それに対して、Replace関数は文字列の中にあるスペースも除去できる。

'A B Cのまま表示される。
Sub Test()
    Dim str As String
    str = "A B C"
    MsgBox Trim(str)
End Sub

Replace関数の引数について

Replace関数には、省略できる引数がいくつかある。すべての引数を書くと次のようになる。

【書式】
Replace(元の文字列, 検索文字列, 置換文字列, 開始位置, 置換回数, 比較方法)

※ 太字の引数は省略可能

(これらの引数については、後日別ページで説明する予定)

練習問題

次のプロシージャを実行したところメッセージボックスが表示された。その表示内容として正しいものはどれか。次の中から1つ選択しなさい。

Sub Test()
    MsgBox Replace("ABCABC", "B", "X")
End Sub

  1. True
  2. AXCABC
  3. AXCAXC
  4. ACAC

正解を見る

3

コメント