【Excel VBA】置換と削除(Replace関数)

スポンサーリンク

Excel VBA講座 開講中!

Excel VBAにおける文字列の置換方法には、

・Replace関数
⇒文字列の中から指定した文字列を置換

・Replaceメソッド
⇒セル範囲の中から指定した文字列を置換

の2種類があり少々ややこしいですが、今回はReplace関数の方をご紹介します。

文字列の置換

Replace関数の書き方は、以下のようになります。

Replace(対象文字, 検索文字, 置換文字[, 開始位置, 置換回数, 比較モード]) 
※[]内は全て省略可能

開始位置、 置換回数、比較モードと省略可能な引数もありますが、今回は基本的な下記の引数に絞ってご紹介します。

Replace(対象文字, 検索文字, 置換文字)

下記の例では対象文字を「月曜日」、検索文字を「月」、置換文字を「火」とし、メッセージボックスに「火曜日」と表示されるようにしています。

Sub Replace関数1()

Dim str As String

str = Replace(“月曜日”, “月”, “火”)

MsgBox str

End Sub

Replace関数1 処理結果

Replace関数1 処理結果

文字列の削除

下記の例では対象文字を「月曜日」、検索文字を「曜日」、置換文字を空欄とし、メッセージボックスに「月」と表示されるようにしています。

Sub Replace関数2()

Dim str As String

str = Replace(“月曜日”, “曜日”, “”)

MsgBox str

End Sub

Replace関数2 処理結果

Replace関数2 処理結果

シート上の文字列を置換

シート上に存在する文字を置換したい場合は、下記のようになります。
変数strにセルA1の文字列を代入し、対象文字列をstrとして「月」を「火」に置換し、セルA1に「火曜日」という文字列を入力しています。

Sub Replace関数3()

Dim str As String

str = Cells(1, 1).Value

str = Replace(str, “月”, “火”)

Cells(1, 1).Value = str

End Sub

Replace関数3 処理前

Replace関数3 処理前

Replace関数3 処理結果

Replace関数3 処理結果

シート上の文字列を繰り返し置換

下記は、シート上に存在する文字列の置換と、Forステートメントによる繰り返し処理や最終行の取得を組み合わせた例です。
セルA1~A7の「曜」という文字列を「曜日」に置換しています。

Sub Replace関数4()

Dim str As String
Dim i As Long
Dim MaxRow As Long

MaxRow = Cells(Rows.Count, 1).End(xlUp).Row

For i = 1 To MaxRow

str = Cells(i, 1).Value

str = Replace(str, “曜”, “曜日”)

Cells(i, 1).Value = str

Next i

End Sub

Replace関数4 処理前

Replace関数4 処理前

Replace関数4 処理結果

Replace関数4 処理結果

スポンサーリンク
スポンサーリンク

シェアする

  • このエントリーをはてなブックマークに追加

フォローする