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