VBA 文字列を指定して置換Replace

投稿者: | 2020年11月22日
excelアイコン

バージョン

マイクロソフト365

 

本日は文字列を指定して置換ができるReplace関数について解説していきたいと思います。

それではいってみましょう(^O^)

 

Replace関数

概要

・文字列を指定して置換します。

・文字列の中に重複文字がある場合、その回数を指定して置換できます。

構文

Replace(expression, find, replace, [ start, [ count, [ compare ]]])

[ ]は省略可。

引数

Replace必須/省略可詳細
expression
(第1引数)
必須置換前の文字列を指定。
find
(第2引数)
必須置換前の文字列から置換したい文字を指定。
replace
(第3引数)
必須置換後の文字列を指定。
start
(第4引数)
省略可 置換前の文字列の開始位置を指定。
・省略 → 1
count
(第5引数)
省略可

置換前の文字列に同じ文字が複数ある場合、置換の回数を指定。
省略 → -1 。すべての文字列を置換。

 例)abc → zbcに回数指定で置換する場合
・省略(全て置換)

abc abc abc → zbc zbc zbc

・1を指定した場合(先頭のabcのみ置換)

abc abc abc → zbc abc abc

compare
(第6引数)
省略可比較の種類を示す数値を指定。

 

サンプル

指定した文字を置換

置換前の文字列の中から文字を指定して、一致した文字のみ置換できます。

Debug.Print

結果

カツ丼を → 親子丼に置換できます( ゚∀ ゚)

【変更前】牛丼と豚丼とカツ丼 

【変更後】牛丼と豚丼と親子丼

 

置換の回数指定

置換前の文字列に重複する同じ文字がある場合は、第5引数を数字指定で置換の回数を指定できます。(今回は3つの重複する文字を置換してみます)(^o^)o

結果

先頭から3つの牛丼のみ → 豚丼に変更できます(^o^)o

【変更前】牛丼,牛丼,牛丼,牛丼,牛丼 

【変更後】豚丼,豚丼,豚丼,牛丼,牛丼

 

先頭の文字のみを置換

文字列の先頭の文字のみを指定して置換。

今回はA列の文字列の先頭1を空白に置換します。

今回使用するデータ

replace先頭サンプル1

【解説】

定数Constでデータの行頭番号、変更前の列番号、変更後の列番号が指定できるようにします。

データの最終行番号を取得します。

繰り返し処理で1行ずつ処理を行っていきます。

IF文とLike演算子で先頭の文字が1だったらの検索をします。

先頭の1のみ空白に置換します。

 

結果

A列のデータを、B列先頭1のみを空白に置換して完成です\(^^)/

末尾の1は置換されてないのが確認できます。

【変更前】              【変更後】

replace先頭サンプル1      replace先頭置換サンプル2

 

まとめ

VBAのReplace関数には6個の引数があります。

基本的にVBAのReplace関数は文字列を指定して置換することが目的ですが、その他の引数も頭の片隅にいれておくことで業務で柔軟に対応ができます。

他の関数や演算子、IF文を組み合わせることで今回のような置換も可能になりますので、ご自身で色々な置換方法を見つけてみてください(^^♪

・配列の文字列の置換も下記で解説しています!

【エクセルVBA】配列要素の文字列を置換(先頭,末尾,全て)

以上です。