Replaceメソッド解説(Excel VBA)

Excel VBAのRange.Replaceメソッドの使い方

Excel VBAのRange.Replaceメソッドは、指定した範囲に含まれる特定の値を新しい値に置換するためのメソッドです。このメソッドは、大量のデータが含まれるスプレッドシートで特定の値を一括で変更する際に非常に便利です。

Range.Replaceメソッドのパラメータ

Range.Replaceメソッドは以下のパラメータを持っています:

  • What: 必須のパラメータで、置換される文字列を指定します。
  • Replacement: 必須のパラメータで、Whatで指定した文字列をこの文字列に置換します。
  • LookAt: 置換の対象を全体(xlWhole)か部分(xlPart)かを指定します。省略した場合はxlPartになります。
  • SearchOrder: 検索の順序を指定します。xlByRowsは行単位の検索、xlByColumnsは列単位の検索です。省略した場合はxlByRowsになります。
  • MatchCase: 大文字と小文字を区別する場合はTrue、区別しない場合はFalseを指定します。省略した場合はFalseになります。
  • MatchByte: 2バイト文字を1バイト文字として区別する場合はTrue、区別しない場合はFalseを指定します。省略した場合はFalseになります。
  • SearchFormat: セル書式に基づいて検索する場合はTrue、書式を考慮しない場合はFalseを指定します。省略した場合はFalseになります。
  • ReplaceFormat: 置換後に特定の書式を適用する場合はTrue、適用しない場合はFalseを指定します。省略した場合はFalseになります。

Range.Replaceメソッドの使用例

以下に、Range.Replaceメソッドの使用例を示します:

    Sub ReplaceExample()
        Range("A1:A10").Replace What:="Apple", Replacement:="Orange", LookAt:=xlWhole
    End Sub

この例では、セル範囲A1:A10内で文字列”Apple”を”Orange”に置換しています。LookAtパラメータにxlWholeを指定しているため、セルの内容が完全に”Apple”と一致する場合のみ置換が行われます。

まとめ

以上がExcel VBAのRange.Replaceメソッドの使い方についての説明です。このメソッドは、一括で値を置換する場合に非常に役立ちます。ただし、置換対象の範囲、置換の方法、置換の詳細な条件など、パラメータの設定により結果が大きく変わるため、使用する際には注意が必要です。