大体でIT
大体でIT
Excel VBAで文字列を削除する方法についてご紹介します。文字列を削除する方法は2パターンあって、文字列を置換して削除する方法と、文字列の範囲を置換して削除する方法です。Replace、Substitute、Right、Leftを使った方法をご紹介します。
この記事では、文字列を削除する方法についてご紹介します。
任意の文字列を削除する方法と、範囲を指定して削除する方法です。
- Replace
- ワークシート関数Substitute
範囲を指定して文字列を削除する方法は次の3つがあります。
- Left
- Right
- ワークシート関数Replace
使いたい場面に応じてVBA関数やワークシート関数を使い分けると、VBAコードをシンプルに作成することができます。
Excel VBAで任意の文字列を削除する方法をご紹介します。
任意の文字列を削除するには、VBA関数のReplaceを使って削除したい文字列を空欄""に置換することでできます。
VBA関数のReplaceを使って文字列を削除するイメージです。
文字列を指定して削除のイメージ
文字列『123456』の『456』を空欄『""』に置換して文字列を削除しています。
Sub TEST1()
'"456"を空欄""へ置換
MsgBox Replace("123456", "456", "")
End Sub
変数の入力は『a = Replace(文字列, 変換される文字列, 変換後の文字列)』となります。
実行結果
文字列『123456』の『456』を削除できました。
番号を指定して任意の文字列を削除(ワークシート関数Substitute)
番号を指定して任意の文字列を削除するワークシート関数のSubstituteをご紹介します。
先ほどのReplaceと似ていますが、一致した文字列の番号も指定することができます。
番号を指定して任意の文字列を削除のイメージ
文字列『123-123-123』の中から2番目の『123』を空欄『""』に置換して文字列を削除しています。
VBA関数のReplaceだとすべての『123』を削除してしまいますので不便です。
一部の文字列だけを削除したいといった場合にワークシート関数のSubstituteが使えます。
Sub TEST2()
'2番目の"123"を空欄""に置換
MsgBox WorksheetFunction.Substitute("123-123-123", "123", "", 2)
End Sub
変数の入力は『a = Substitute(文字列, 変換される文字列, 変換後の文字列, 番号)』となります。
実行結果
文字列『123-123-123』で2番目の『123』を削除できています。
Excel VBAで文字列の範囲の指定して文字列を削除する方法もあります。
例えば、文字列を右から削除したい場合は、VBA関数の『Left』を使うとできます。
発想を変えて、文字列を右から削除したいので左から文字列を切り出す『Left』を使うというものです。
右から削除のイメージ
文字列『あいうえお』の左から3文字分を切り出して右の『えお』を削除しています。
Sub TEST3()
'左から3文字目までを切り出し
MsgBox Left("あいうえお", 3)
End Sub
変数の入力は『a = Left(文字列, 左から切り出す文字数)』となります。
実行結果
文字列『あいうえお』の右側の文字列『えお』を削除できています。
文字列を左から削除する場合は、VBA関数のRightを使うとできます。
左から削除するので、右から切り出す『Right』を使っています。
左から削除のイメージ
文字列『あいうえお』の右から3文字分を切り出して左の『あい』を削除しています。
Sub TEST4()
'右から3文字目までを切り出し
MsgBox Right("あいうえお", 3)
End Sub
変数の入力は『a = Right(文字列, 右から切り出す文字数)』となります。
実行結果
文字列『あいうえお』の左側の文字列『あい』を削除できています。
範囲を指定して文字列を削除(ワークシート関数Replace)
次は範囲を指定して文字列を削除したいといった場合には、ワークシート関数のReplaceを使えばできます。
左の2文字目から3文字分の範囲を指定して文字列を削除する。といった場合です。
範囲を指定して削除のイメージ
文字列『あいうえお』で、左の2文字目から3文字分を削除することができます。
範囲を指定して削除できるので、文字列の中間の部分を削除したい場合に使えます。
Sub TEST5()
'左の2文字目から3文字分を空欄""へ置換
MsgBox WorksheetFunction.Replace("あいうえお", 2, 3, "")
End Sub
変数の入力は『a = WorksheetFunction.Replace(文字列, 開始する文字番号, 文字数, 変換後の文字列)』となります。
実行結果
文字列『あいうえお』の2文字目から3文字分の『いうえ』を削除できています。
この記事では文字列を削除する方法についてご紹介しました。
文字列を削除する方法として、任意の文字列を削除する方法と、範囲を指定して削除する方法がありました。
任意の文字列を削除したい場合は次の2つがありました。
- Replace
- ワークシート関数Substitute
文字列全体から任意の文字列を削除したいといった場合は、Replaceが簡単です。
番号を指定して任意の文字列を削除したい場合は、ワークシート関数のSubstituteが使えます。
範囲を指定して文字列を削除する場合は次の3つがありました。
- Left
- Right
- ワークシート関数Replace
範囲を指定して中間の文字列などを削除したい場合は、ワークシート関数のReplaceが便利です。
使いたい場面に応じてVBA関数やワークシート関数を使い分けると、VBAコードをシンプルに作成することができます。
参考になればと思います。最後までご覧くださいましてありがとうございました。