【Excel VBA】文字列の空白(スペース)を削除する方法

Excelで人名やデータを扱うときに、空白(スペース)が入っていて邪魔だから空白を消したいといったことがあります。

この記事では、VBAで空白を削除する方法について紹介します。

空白削除イメージ
VBA 空白削除 実行前後
目次

Replace関数を使って姓名の間の空白を削除する

最も使う場面が多いのが、人名の姓と名の間の空白を削除したいケースかと思います。

Replace関数の使い方は次の通りです。

Replace(文字列, 検索文字列, 置換前文字列, 置換後文字列)

※開始位置や文字列数等の指定もできますが、あまり使わないのでここでは割愛します。

Replace関数は、空白を削除する関数ではなく、指定した文字列を別の文字列に置き換える関数です。

Replace関数を使って「空白」を「空白無し」に置き換えるようにして使います。

Replace関数を使った具体例として下記のコードと実行結果は次の通りです。

Sub Replace関数で空白を削除()
    
    Dim BeStr As String
    Dim AfStr As String
    
    BeStr = "山田 太郎"
    
    AfStr = Replace(BeStr, " ", "")
    MsgBox (BeStr & " → " & AfStr)
    
End Sub

■実行結果

解説

6行目で変数BeStrに空白(半角スペース)を含む文字列「山田 太郎」を代入します。

8行目で変数AfStrにReplace関数を使って空白を削除した文字列を代入します。

9行目のメッセージボックスでその結果を表示します。

Trim関数を使って文字列の前後に含まれる空白を削除する

CSVファイルで出力された文字列の中には、必要な文字列の前や後ろに空白(スペース)が含まれていることがあります。

Trim関数を使って、文字列の前後の空白を削除することができます。

Trim(文字列)

Trim関数は、先頭と末尾の両方の空白を削除することができます。

同じような関数としてLTrim関数とRTrim関数があります。

LTrim(文字列)  '先頭の空白のみを削除
RTrim(文字列)  '末尾の空白のみを削除

Trim関数は、空白が2個以上連続していてもまとめて削除できます。
また、半角スペース、全角スペース関係なく削除してくれます。

Trim関数を使った具体例は次の通りです。

Sub Trim関数で前後の空白を削除()
    
    Dim BeStr As String
    Dim AfStr As String
    
    BeStr = " ABC 123 "
    
    AfStr = Trim(BeStr)
    MsgBox ("[" & BeStr & "] → [" & AfStr & "]")
    
End Sub

■実行結果

VBA 文字列前後の空白削除 実行結果
解説

6行目で変数BeStrに前後と間に空白(スペース)を含む文字列「 ABC 123 」を代入します。

8行目で変数AfStrにTrim関数を使って空白を削除した文字列を代入します。

9行目のメッセージボックスでその結果を表示します。前後の空白が削除されているのをわかりやすくするため、”[ ]”で囲んで表示しています。

複数のセルを一括で空白を削除する

実際にReplace関数を使った複数セルに対して空白を一括で削除する方法について紹介します。

以下のように氏名の性と名の間に空白(半角スペース)が入力されているケースで下記のコードを実行してみます。

VBA Replace関数 姓名削除前
Sub 空白一括削除()
    
    Dim TCell As Range
    
    For Each TCell In ActiveSheet.UsedRange
        TCell = Replace(TCell, " ", "")
    Next
    
End Sub

■実行結果

VBA Replace関数 姓名削除後
解説

5~7行目で使っている全てのセルに対して、Replace関数を使って” “(半角スペース)を削除を行います。

「ActiveSheet.UsedRange」 を 「Range(“A2:A21”)」に置き換えて対象のセル範囲を変更することもできます。

まとめ

この記事では、VBAを使って文字列の空白を削除する方法について解説しました。

人名の性と名の間の空白をどうにかしたいといった場面は非常に多いかと思いますのでぜひ活用してください。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

コメント

コメントする

目次