Excel VBA:文字列置換のReplaceメソッドの使い方|空白・改行の削除

Replaceメソッドは、指定した範囲内を指定した文字で検索し、指定した文字で置き換えます。


Homeに戻る > Excel セルのTipsへ

Replaceは下記のような大変便利な使い方ができます。

  • 文字列内の空白を全て削除してくれる
    文字列内の空白を削除するには、Trim・LTrim・RTrim関数がありますが、これは端の空白だけで中にある空白は削除できませんが、Replaceは全て削除できます。
  • 改行がある複数行の文字列でも置換えることができる
    これについては「複数文字列の置換が可能かテストする」で実際に行っているので参照してください。
  • vbLf、vbCr、vbCrLfなどの文字コードも置換えできる
  • 大文字と小文字を区別して置換えできる
  • ワイルドカードが使用できる
    ワイルドカードを使用することで、例えば「東京*」とすることで、先頭に東京が付く文字列の全てを置換えできます。

などがあります。
ただ複数の条件の置換え、正規表現による置換えなどはできません。
ここではデータが入力されたシートに、置き換え元と置き換え文字の入力セル、置き換えのコマンドボタンを配置しました。
置き換え元セルと置き換え文字セルに入力し、置き換えコマンドボタンをクリックすると、クリックイベントのVBAが実行します。

関連の「Replaceメソッドでシート全体を置換する」も参照してください。





Replaceメソッドの構文

Range オブジェクト式.Replace(What, Replacement, LookAt, SearchOrder, MatchCase,MatchByte, SearchFormat, ReplaceFormat)

・引数

  • What (必須)バリアント型 (Variant): 検索する文字列を指定
  • Replacement (必須)バリアント型 (Variant): 置き換える文字列を指定
  • LookAt (省略可)バリアント型 (Variant): 使用できる定数は、XlLookAt クラスの 完全に同一なセルだけを検索(xlWhole)か 一部分でも一致するセルの検索(xlPart)
  • SearchOrder (省略可)バリアント型 (Variant): 使用できる定数は、XlSearchOrder クラスの 行方向に検索する(xlByRows)か 列方向に検索する(xlByColumns)
  • MatchCase (省略可)バリアント型 (Variant): 大文字と小文字を区別し検索するには、True を指定
  • MatchByte (省略可)バリアント型 (Variant): Excel で 2 バイト (全角) 文字の言語サポートが選択またはインストールされている場合にだけ使用できる。2バイト文字とだけ一致するようにする場合は、Trueを指定
  • SearchFormat (省略可)バリアント型 (Variant): メソッドの検索書式を指定
  • ReplaceFormat (省略可)バリアント型 (Variant): メソッドの置換書式を指定

・戻り値

ブール型 (Boolean)が返ります。

テストした結果では、常にTrueが返りました。

Excel実行画面

置換え元 と 置換え文字 にそれぞれ入力し、「置換え」ボタンをクリックすると、B1:B12の範囲を検索し置き換えます。

置換え前のシート

■ 実行結果

B1:B1000の範囲で”北海道” が ”ホッカイドウ” になっています。

Replaceを実行し置き換えたシート

Excel VBA実行コード

Option Explicit

Private Sub CommandButton1_Click()
    If Range("F2") = "" Then
        MsgBox "置き換え元を入力してください。"
        Exit Sub
    End If
    
    If Range("F3") = "" Then
        MsgBox "置き換え文字を入力してください。"
        Exit Sub
    End If
    
      
    '置き換え実行
    Range("B1:B1000").Replace what:=Range("F2"), replacement:=Range("F3")

End Sub


Homeに戻る > Excel セルのTipsへ

■■■
このサイトの内容を利用して発生した、いかなる問題にも一切責任は負いませんのでご了承下さい
■■■
当ホームページに掲載されているあらゆる内容の無許可転載・転用を禁止します


Copyright (c) Excel-Excel ! All rights reserved