注目キーワード
  1. VBA
  2. 関数
  3. ショートカット

【VBA】Replaceを使って文字列を置換しよう!【メソッド・関数】

  • 2019年3月31日
  • VBA
  • 335回
  • 0件
VBA NO IMAGE

Replaceメソッド・Replace関数を使っていますか?

Replaceメソッドは、対象の文字列を検索して一括して別の文字列に置き換えるなど
Excelの検索と置換の置換に該当する処理を実行できます。

この記事ではReplaceメソッドとReplace関数の違いや

基本的な使いかたや応用した使いかたを紹介します。

ReplaceメソッドとReplace関数の違いとは?

Replaceメソッドとは、対象のセル範囲の中で、指定した文字列を含むセルを検索して、見つかったセルの該当部分を置き換えるメソッドです。
Findメソッドなどの検索の操作とは違い、対象は1つのセルではなく、該当するすべてのデータを一括で置換します。

Replace関数は対象の文字列の中で指定した文字列を別の文字列に置き換える場合に使用します。

Replace関数の基本的な使いかた

Replace関数の記述は以下のようになります。

Replace(expression, find, replace[, start[, count[, compare]]])
[ ]の中の引数は省略可能です。
引数の内容は以下の表を参考にしてください。
引数 定数(値) 説明
expression 置換する文字列を含む文字列
find 検索する文字列
replace 置換する文字列
start 検索開始位置を指定
count 置換する文字列数を指定
省略の場合、すべて置換
compare vbBinaryCompare(0) バイナリモードで比較
大文字と小文字を区別する
vbTextCompare(1) テキストモードで比較
大文字と小文字を区別せず

また指定する引数によって戻り値が変化します。以下の表を参考にしてください。

条件 戻り値
expressionが長さ0の文字列(””) 長さ0の文字列(“”)
expressionがNullの場合 エラー
findが長さ0の文字列(“”) expressionのコピー
replaceが長さ0の文字列(“”) indがすべて削除されたexpressionのコピー
startの値がexpressionの文字数より大きい 長さ0の文字列(“”)
countが0 expressionのコピー

 

Replace関数で半角スペースを削除する

Replace関数で検索した文字列の中から、半角スペースを空文字に置換するコードを紹介します。

Sub test ()
Range(“A1”) = Replace(Range(“A1″) , ” ” , “” )
End Sub
引数Findに検索する文字列” “半角スペースを指定して、引数Replaceに置き換える文字列””空文字を指定して置換しています。

Replaceメソッドの基本的な使いかた

下記のコードは対象のワークシート内に入力されたすべての「3月」を「3月度」に置換しています。

置換の操作は、対象のセル範囲を表すRangeオブジェクトのReplaceメソッドで実行します。

ここでは対象のRangeオブジェクトをCellsプロパティで作業中のすべてのワークシートのすべてのセルを取得しています。

そのRangeオブジェクトのReplaceメソッドの引数Whatに検索する文字列を引数Replacementに置換後の文字列を指定します。

Sub test ()
Cells . Replace What := “3月” , Replacement := “3月度” , LookAt := xlPart
End Sub

部分一致の場合は引数LookAtにxlPartを指定して完全一致の場合はxlWholeを指定します。

Replaceメソッドの主な引数

引数 定数 説明
What 検索するデータを指定
Replacement 置換するデータを指定
LookAt xlPart 一部が一致するセルを検索
xlWhole 全部が一致するセルを検索
SearchOrde xlByRows 検索方向を列で指定
xlByColumns 検索方向を行で指定
MatchCase True 大文字と小文字を区別
False 区別しない(デフォルトの設定)
MatchByte True 半角と全角を区別する
False 区別しない(デフォルトの設定)
SearchFormat 検索書式を指定
ReplaceFormat 置換書式を指定

引数のWhatとReplacementは必ず指定する必要があります

その他は省略することができます。

まとめ

今回は、ReplaceメソッドとReplace関数について紹介しました。

Replace関数は文字列の中から文字列を検索して置換する場合に使用して

Replaceメソッドはセル範囲の中から文字列を検索して置換する場合に使用します。

引数や呼び出しの方法が違ってくるので使用する際に注意して使っていきましょう。

VBA関連記事の一覧から調べるには下記のリンクから紹介しています。

【基礎から学べる】ExcelマクロとVBA【入門】

NO IMAGE
最新情報をチェックしよう!