Excelに入力されたデータに、半角と全角が混在してしまうことはよくあります。見た目には似ていても、Excelでは別の文字として扱われるため、集計や検索でトラブルになる原因になります。
たとえば、「アイウエオ」と「アイウエオ」や、「123」と「123」は、見た目は似ていても別物です。今回は、そういったデータを一括で整える「文字のクリーニングマクロ」の作り方を紹介します。
半角と全角の統一処理の考え方
VBAでは、文字の全角・半角変換を StrConv 関数で行うことができます。
主な引数は次の通りです。
vbWide:半角 → 全角vbNarrow:全角 → 半角vbKatakana:ひらがな → カタカナvbHiragana:カタカナ → ひらがな
今回は、すべての文字を「全角」に統一する例をご紹介します。
Sub CleanFullWidth()
Dim r As Range
Dim c As Range
Set r = Selection
For Each c In r
If VarType(c.Value) = vbString Then
c.Value = StrConv(c.Value, vbWide)
End If
Next c
MsgBox "全角に統一しました。", vbInformation
End Sub
このコードの動きは次の通りです。
- 選択範囲(Selection)を対象に処理
- 各セルの値が「文字列」の場合のみ、全角に変換
- 処理後にメッセージを表示
数字・アルファベット・記号・カタカナなど、すべてが全角文字に統一されるため、フォーマットが整い、Excel上での一致・比較も正確になります。
実装するメリット
半角・全角が混在していると、Excelの機能が正しく使えないことがあります。
たとえば、
- 「あいう」と「アイウ」は検索でヒットしない
- フィルターが効かない
- 集計時に同じ値なのに別項目になる
こうしたトラブルを避けるためには、「一度統一してから使う」というルールづけが非常に効果的です。
このマクロを使えば、次のようなメリットがあります。
- 入力ミスによる不一致を自動で解消できる
- データの前処理として安心して使える
- 作業者が複数いても、ルール統一ができる
- コピペ元に依存しない整った表が作れる
特に、外部データを取り込む場合や、複数人でファイルを扱う業務では、このような「見えない揺らぎ」を消すことが、運用安定化の鍵となります。
カスタマイズや応用例
上記の例では「全角に統一」しましたが、「半角に統一」したい場合は、vbWide を vbNarrow に変えるだけです。
c.Value = StrConv(c.Value, vbNarrow)
また、カタカナのみを半角に変える、記号はそのまま残したいといったケースも、組み合わせ次第で柔軟に対応可能です。
さらに、次のような応用処理も追加できます。
Trimを使って余分なスペースを削除UCase/LCaseで大文字・小文字の統一- 数字や日付のフォーマット調整
データ整形の第一歩として、この「全角・半角統一マクロ」は、非常に汎用性の高い仕組みです。
まとめ
Excelでの文字データの管理において、「半角・全角の違い」は予期せぬエラーの原因になりがちです。
StrConv関数を使った統一マクロを使えば、見えない文字の違いをなくして、データを綺麗に整えることが可能です。
今回の内容を整理すると、次のようなポイントがあります。
- StrConv関数を使えば、簡単に文字種変換ができる
- 半角・全角の統一は、検索・集計トラブルの予防になる
- マクロで一括処理すれば、誰でもミスなく作業できる
日々のExcel作業を快適にするために、まずはこの「クリーナーマクロ」から始めてみてください。整ったデータは、次の業務の効率を大きく左右します。


