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関数】



コメント