Replaceメソッドは指定した範囲で当てはまる文字列を置換(Replace)します。
※Replace関数と、今回ご説明するReplaceメソッドは別物です。
メソッド説明
Replaceメソッドの構文は以下のように記載します。
Object.Replace(What, Replacement, LookAt, SearchOrder, MatchCase, MatchByte, SearchFormat, ReplaceFormat)
引数の一覧は以下です。
引数 | 定数 | 説明 | 必須項目 |
What | ー | 検索するデータを指定 | 必須 |
Replacement | ー | 置換するデータを指定 | 必須 |
LookAt | xlPart | 一部が一致するセルを検索 (部分一致) | |
xlWhole | 全部が一致するセルを検索 (完全一致) | ||
SearchOrde | xlByRows | 検索方向を列で指定 (横方向に検索) | |
xlByColumns | 検索方向を行で指定 (縦方向に検索) | ||
MatchCase | True | 大文字と小文字を区別 | |
False | 区別しない(デフォルト設定) | ||
MatchByte | True | 半角と全角を区別する | |
False | 区別しない(デフォルト設定) | ||
SearchFormat | ー | 検索書式を指定 | |
ReplaceFormat | ー | 置換書式を指定 |
注意点
- 引数Whatにはワイルドカードを使って指定できます。
- 一度に複数条件の置換はできません。Replaceメソッドを複数回行う必要があります。
使い方サンプル
Public Sub Call_Sample_Replace() '■検索範囲を設定 Dim rng As Range Set rng = Range("A1:A20") '■置換処理(完全一致) rngに「Jan」が完全一致で存在すれば「1月」に置換します rng.Replace "Jan", "1月", LookAt:=xlWhole '■置換処理(部分一致) rngに「Feb」が部分一致で存在すれば「2月」に置換します rng.Replace "Feb", "2月", LookAt:=xlPart '■置換が出来れば戻り値はTrue できなければFalse Dim chk As Boolean chk = Range("A1:A20").Replace("Feb", "2月", LookAt:=xlWhole) '■もちろん検索文字、置換文字を変数に入れる事も可能 Dim Keyword As String Dim Repword As String Keyword = "2020*" 'ワイルドカード(*)を使用 「2020」から始まる文言は全て Repword = "令和2年" '令和2年に変更してしまう Range("A1:A10").Replace Keyword, Repword, LookAt:=xlPart
※単純に西暦、和暦を変更するなら以下記事も参考にどうぞ。
西暦→和暦変換-和暦→西暦変換【エクセルマクロ】【DATEVALUE関数】
コメント