大体でIT

-ちょっと使えるネタを紹介-

大体でIT

Excel VBAで文字列を削除する方法についてご紹介します。文字列を削除する方法は2パターンあって、文字列を置換して削除する方法と、文字列の範囲を置換して削除する方法です。Replace、Substitute、Right、Leftを使った方法をご紹介します。

はじめに

この記事では、文字列を削除する方法についてご紹介します。

文字列の削除方法は、2パターンあります。

任意の文字列を削除する方法と、範囲を指定して削除する方法、です。

任意の文字列を削除する方法は次の2つがあります。

  • Replace
  • ワークシート関数Substitute

範囲を指定して文字列を削除する方法は次の3つがあります。

  • Left
  • Right
  • ワークシート関数Replace

使いたい場面に応じてVBA関数やワークシート関数を使い分けると、VBAコードをシンプルに作成することができます。

では紹介していきます。

この記事で紹介すること

  • 文字列を削除する方法

目次

VBAで任意の文字列を削除

Excel VBAで任意の文字列を削除する方法をご紹介します。

任意の文字列を削除(Replace)

任意の文字列を削除するには、VBA関数のReplaceを使って削除したい文字列を空欄""に置換することでできます。

VBA関数のReplaceを使って文字列を削除するイメージです。

文字列を指定して削除のイメージ

Replaceを使って文字列を置換して削除するイメージ

文字列『123456』の『456』を空欄『""』に置換して文字列を削除しています。

ではVBAコードです。

Sub TEST1()
    
    a = "123456"
    
    '"456"を空欄""へ置換
    a = Replace(a, "456", "")
    
End Sub

変数の入力は『a = Replace(文字列, 変換される文字列, 変換後の文字列)』となります。

実行結果です。

実行結果

Replaceを使って文字列を置換して削除した結果

結果は『123』となりました。

文字列『123456』の『456』を削除できました。

番号を指定して任意の文字列を削除(ワークシート関数Substitute)

番号を指定して任意の文字列を削除するワークシート関数のSubstituteをご紹介します。

先ほどのReplaceと似ていますが、一致した文字列の番号も指定することができます。

次のようなイメージです。

番号を指定して任意の文字列を削除のイメージ

番号を指定して任意の文字列を削除するイメージ

文字列『123-123-123』の中から2番目の『123』を空欄『""』に置換して文字列を削除しています。

VBA関数のReplaceだとすべての『123』を削除してしまいますので不便です。

一部の文字列だけを削除したいといった場合にワークシート関数のSubstituteが使えます。

ではVBAコードです。

Sub TEST2()
    
    a = "123-123-123"
    
    '2番目の"123"を空欄""に置換
    a = WorksheetFunction.Substitute(a, "123", "", 2)
    
End Sub

変数の入力は『a = Substitute(文字列, 変換される文字列, 変換後の文字列, 番号)』となります。

ではVBAコードを実行してみます。

実行結果

番号を指定して任意の文字列を削除した結果

結果は、『123--123』となりました。

文字列『123-123-123』で2番目の『123』を削除できています。

VBAで範囲を指定して文字列を削除

Excel VBAで文字列の範囲の指定して文字列を削除する方法もあります。

右から削除(Left)

例えば、文字列を右から削除したい場合は、VBA関数の『Left』を使うとできます。

発想を変えて、文字列を右から削除したいので左から文字列を切り出す『Left』を使うというものです。

文字列を右から削除するイメージです。

右から削除のイメージ

Leftを使って文字列を右から削除するイメージ

文字列『あいうえお』の左から3文字分を切り出して右の『えお』を削除しています。

VBAコードではこのように記載します。

Sub TEST3()
    
    a = "あいうえお"
    
    '左から3文字目までを切り出し
    a = Left(a, 3)
    
End Sub

変数の入力は『a = Left(文字列, 左から切り出す文字数)』となります。

では実行してみます。

実行結果

Leftを使って文字列を右から削除した結果

結果は『あいう』となりました。

文字列『あいうえお』の右側の文字列『えお』を削除できています。

左から削除(Right)

文字列を左から削除する場合は、VBA関数のRightを使うとできます。

左から削除するので、右から切り出す『Right』を使っています。

イメージは次のようになります。

左から削除のイメージ

Rightを使って左から文字列を削除するイメージ

文字列『あいうえお』の右から3文字分を切り出して左の『あい』を削除しています。

VBAコードで記載すると次のようになります。

Sub TEST4()

    a = "あいうえお"
    
    '右から3文字目までを切り出し
    a = Right(a, 3)
    
End Sub

変数の入力は『a = Right(文字列, 右から切り出す文字数)』となります。

では実行してみます。

実行結果

Rightを使って左から文字列を削除するイメージ

結果は『うえお』となりました。

文字列『あいうえお』の左側の文字列『あい』を削除できています。

範囲を指定して文字列を削除(ワークシート関数Replace)

次は範囲を指定して文字列を削除したいといった場合には、ワークシート関数のReplaceを使えばできます。

左の2文字目から3文字分の範囲を指定して文字列を削除する。といった場合です。

かなり応用できそうです。

では範囲を指定して文字列を削除するイメージです。

範囲を指定して削除のイメージ

ワークシート関数Replaceを使って範囲を指定して文字列を削除するイメージ

文字列『あいうえお』で、左の2文字目から3文字分を削除することができます。

範囲を指定して削除できるので、文字列の中間の部分を削除したい場合に使えます。

VBAコードはこのように記載します。

Sub TEST5()
    
    a = "あいうえお"
    
    '左の2文字目から3文字分を空欄""へ置換
    a = WorksheetFunction.Replace(a, 2, 3, "")
        
End Sub

変数の入力は『a = WorksheetFunction.Replace(文字列, 開始する文字番号, 文字数, 変換後の文字列)』となります。

では実行してみます。

実行結果

ワークシート関数Replaceで範囲を指定して削除した結果

結果は、『あお』となりました。

文字列『あいうえお』の2文字目から3文字分の『いうえ』を削除できています。

まとめ

この記事では文字列を削除する方法についてご紹介しました。

文字列を削除する方法として、任意の文字列を削除する方法と、範囲を指定して削除する方法がありました。

任意の文字列を削除したい場合は次の2つがありました。

  • Replace
  • ワークシート関数Substitute

文字列全体から任意の文字列を削除したいといった場合は、Replaceが簡単です。

番号を指定して任意の文字列を削除したい場合は、ワークシート関数のSubstituteが使えます。

範囲を指定して文字列を削除する場合は次の3つがありました。

  • Left
  • Right
  • ワークシート関数Replace

右から削除する場合は、Leftが簡単です。

左から削除する場合は、Rightでできます。

範囲を指定して中間の文字列などを削除したい場合は、ワークシート関数のReplaceが便利です。

使いたい場面に応じてVBA関数やワークシート関数を使い分けると、VBAコードをシンプルに作成することができます。

参考になればと思います。最後までご覧くださいましてありがとうございました。

関連する記事から探す

カテゴリから探す

カテゴリから見たい項目を探すと便利ですよ。

サイト内を検索する

↓キーワードを入力する

アーカイブから探す