VBAで文字列内の空白を一括削除する方法【Replaceメソッドの活用】

目次

概要

Excelで文字列データを扱っていると、単語間や不要な空白(スペース)が混在していることがあります。こうした空白が原因で検索がうまくいかない、集計が正確にできないといった問題が発生することもあります。

本記事では、VBAを使ってセル内の文字列からすべての半角スペースを一括で削除する方法をご紹介いたします。Replace メソッドを活用すれば、複数セルにまたがって効率的に処理できます。

サンプルコード

Sub RemoveAllSpacesInText()

    Range("E3:E5").Replace _
        What:=" ", _
        Replacement:="", _
        LookAt:=xlPart, _
        MatchByte:=False

End Sub

コード解説

  • Range("E3:E5")
    空白削除の対象となるセル範囲です。複数行にまたがる文字列にも対応可能です。
  • What:=" "
    削除対象とするのは半角スペースです。全角スペースを削除したい場合は " " を指定します。
  • Replacement:=""
    空白を空文字(何もない状態)に置き換えます。つまり、削除と同じ意味になります。
  • LookAt:=xlPart
    セルの一部に一致すれば置換するという指定です。これにより、文字列の一部にある空白にも対応できます。
  • MatchByte:=False
    全角・半角を区別せずに検索します(ただし What:=" " で指定しているのが半角空白なので、実際には半角のみが対象になります)。

実行前後のイメージ

実行前実行後
“東京 市”“東京市”
“大阪 中央区”“大阪 中央区”(※全角スペースは残る)
“名 古 屋”“名古屋”

※ 全角スペースも同時に削除したい場合は、別途 Replace What:=" " を追加してください。

応用例

  • 氏名や住所データから不要なスペースを一掃
  • 商品名・型番・コードの整形
  • CSVやWebから貼り付けたデータのクリーニング処理

注意点

  • 全角スペースはこの処理では削除されません。必要に応じて次のように併用してください: vbaコピーする編集するRange("E3:E5").Replace What:=" ", Replacement:="", LookAt:=xlPart, MatchByte:=False
  • 数式が含まれているセルには影響を与える可能性があるため、対象を明確にしておくことをおすすめします。

まとめ

本記事では、VBAの Replace メソッドを使って、文字列内の空白(スペース)を一括削除する方法をご紹介いたしました。

削除対象コード例
半角スペースWhat:=" "
全角スペースWhat:=" "
両方削除上記2つを組み合わせて2回処理するのがおすすめ

データの整形や精度の高い処理を行うためには、不要な空白の除去が非常に重要です。業務データの前処理やレポート作成の際に、ぜひお役立てください。

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

この記事を書いた人

私が勉強したこと、実践したこと、してることを書いているブログです。
主に資産運用について書いていたのですが、
最近はプログラミングに興味があるので、今はそればっかりです。

目次