Excelを使った業務で、手入力されたデータに「不要な全角英字」や「余計なスペース(空白)」が混じってしまい、
後から集計や検索、VLOOKUPなどがうまくいかずに困った経験はないでしょうか。
こうした人為的なミスは、データが多ければ多いほど手作業での修正が大変です。
VBAを使って一括で「全角英字を半角に変換」「不要なスペースを除去」する方法をご紹介します。
よくある入力ミスのパターン
まず、どのような誤入力が多いのかを整理しておきましょう。
- 「ABC」などの全角英字
- 「Excel 」のような末尾や先頭のスペース
- 「東 京」や「山 田」などの文字列の途中の空白
- 「田中 」や「 佐藤」など全角スペース
これらは見た目では気づきにくく、数式や検索、ピボット集計などに影響を与える原因となります。
VBAで一括クリーニング処理する方法
次のコードでは、指定したセル範囲内の文字列に対して、以下の処理を一括で実行します。
- 全角英字 → 半角英字へ変換
- 全角スペース → 半角スペースへ変換
- 前後の空白 → 削除
- 中間の連続スペース → 1つに整える
Sub clean_input_data()
Dim r As Range
Dim c As Range
' 対象の範囲を指定
Set r = Range("A2:A100")
For Each c In r.Cells
If VarType(c.Value) = vbString Then
Dim s As String
s = c.Value
' 全角英字を半角に変換
s = StrConv(s, vbNarrow)
' 全角スペースを半角に変換
s = Replace(s, " ", " ")
' 前後のスペースを削除
s = Trim(s)
' 中間の連続スペースを1つに
Do While InStr(s, " ") > 0
s = Replace(s, " ", " ")
Loop
c.Value = s
End If
Next c
End Sub
このマクロを実行するだけで、指定範囲内の文字列を見た目も内部データもクリーンな状態に整えることができます。
実装するメリット
この処理を事前に行っておくことで、さまざまな後続作業がスムーズになります。
- VLOOKUPやXLOOKUPで一致しない原因を減らせる
- 重複チェックや名寄せが正確に行える
- 入力ミスを人の目でチェックする手間を削減できる
- フォームやシステムへの登録前処理としても活用可能
まとめ
Excelに手入力されたデータには、見た目では気づかない細かいミスが多く含まれていることがあります。
とくに全角英字やスペースは、集計や検索において重大なトラブルの原因となります。
今回のポイントを整理します。
- 全角英字や全角スペースは、
StrConvやReplaceで変換できる - 前後の空白は
Trim、中間の連続スペースはループで整形 - 範囲を指定してまとめて修正できるため、実務での応用性が高い
処理の前段階でクリーンアップ(整えておく)しておくことが、トラブルのない効率的なExcel活用につながります。
一度VBAで仕組みを作っておけば、今後の修正作業がグッと楽になりますので、ぜひ取り入れてみてください。


