セル内の文字列置換
セル内の文字列・値を置換する方法についての解説とサンプルコードです。関数、メソッドなど
Range.Replace What:=, Replacement:=, LookAt:=Rangeが置換するセル、Whatが置換対象の文字列、Replacementが置換後の文字列です。
Rangeにセルの範囲を指定した場合は一括での置き換え処理になります。
引数で大文字・小文字の区別、全角・半角の区別、置換え対象文字列の全体・部分一致の選択などが出来ます。
引数で指定した値はメソッド実行後にエクセル上での置換及び検索のダイアログボックスでも継続して反映されてしまいます。
Replaceメソッド、Findメソッド使用後はデフォルトの値に戻す処理の実行をするサンプルコードも掲載しています。(コード2参照)
引数一覧
| 名前 | 説明 | 型 | 備考 |
|---|---|---|---|
| What | 置換対象文字列 | Variant | 必須 |
| Replacement | 置換後文字列 | Variant | 必須 |
| LookAt | 置き換え対象文字列の部分 or完全一致 |
xlWhole or xlPart |
規定値:xlPart |
| SearchOrder | 列or行から検索 | xlByColumns xlByRows |
規定値:xlByRows |
| MatchCase | 大文字小文字の区別する orしない |
True or False | 規定値:False |
| MatchByte | 2Byteと1Byteの区別する orしない |
True or False | 規定値:False |
| SearchFormat | 書式の指定 | 規定値:False | |
| ReplaceFormat | 書式 | 規定値:False |
コード1
選択セルのスペースを全角半角問わずに削除
Sub SampleReplace2()
'半角スペース
Selection.Replace What:=" ", Replacement:=""
'全角スペース
Selection.Replace What:=" ", Replacement:=""
End Sub
コード2
置換設定の初期化(デフォルトに変更)
Sub rReplaceTes2()
'書式検索のクリアをする
Application.FindFormat.Clear
Application.ReplaceFormat.Clear
'置換対象文字を省略してデフォルトの置換をする
Selection.Replace What:="", Replacement:="", Lookat:=xlPart, _
Searchorder:=xlByRows, MatchCase:=False, MatchByte:=False
End Sub
ダイアログボックス初期化の際の置換対象書式はSearchFormatではなくてFindFormatに指定します。コード3
Sub rReplaceTes3()
'セルA1にある文字列"DIV"を消す
Range("a1").Replace what:="DIV", Replacement:="", lookat:=xlPart, MatchCase:=False
'セルA1:C5にある文字列"span"を消す
Range(Cells(1, 1), Cells(5, 3)).Replace what:="span", Replacement:="", lookat:=xlWhole
'D,E列にある文字列"html"を消す
Columns("d:e").Replace what:="html", Replacement:="", lookat:=xlPart
'書式検索のクリアをする
Application.FindFormat.Clear
Application.ReplaceFormat.Clear
'置換対象文字を省略してデフォルトの置換をする
Selection.Replace What:="", Replacement:="", Lookat:=xlPart, _
Searchorder:=xlByRows, MatchCase:=False, MatchByte:=False
End Sub
関連ページ
文字列置換[Replace]関数文字列検索[Find]メソッド