【MOS】【Microsoft Office Excel】【マクロ/VBA】ExcelVBAで文字列を置換する方法
ExcelVBAで文字列を置換するには、Replace関数を利用します。
下記のように記述すると、「置換前の文字列」から「検索する文字列」を検索し、「置換する文字列」に置換します。
Replace("置換前の文字列","検索する文字列", "置換する文字列",開始位置,置換回数,比較モード)
※「開始位置」「置換回数」「比較モード」は省略可能です。
※「置換する文字列」を「""(入力無し)」にすると、「検索する文字列」を削除することができます。
Replace関数を利用して文字列を置換する
Sub sample() Dim sample, test, result As String sample = 'SAMPLE' test = 'TEST' result = Replace(sample, sample, test) MsgBox(result) End Sub
上記のようにすると、「SAMPLE」という文字列が「TEST」に置換され、結果的に「TEST」という文字列が表示されます。
Replace関数を利用してスペースを削除する
スペースを削除するときは、全角スペース用のReplace関数と半角スペース用のReplace関数を重ねて利用します。
Sub sample() Dim sample, result As String sample = 'この文字列には「 (全角スペース)」と「 (半角スペース)」が含まれています。' result = Replace(Replace(sample," ","")," ","") MsgBox(result) End Sub
下記のようにすると、「この文字列には「 (全角スペース)」と「 (半角スペース)」が含まれています。」からスペースが削除されて、「この文字列には「(全角スペース)」と「(半角スペース)」が含まれています。」と表示されます。
Replace関数を利用して改行を削除する
Excel内ではAlt+Enterで改行を行うことができます。
上記改行を削除するときは、下記のようにします。
Sub sample() Dim result As String result = Replace(ActiveCell, vbLf, "") MsgBox(result) End Sub
Excelでは改行コードは「vbLf」を利用していますが、その他の改行コードを削除するときは、「vbLf」部分を下記のように変更してください。
- CR……vbCr
- LF……vbLf
- CR+LF……vbCrLf