【Excelマクロ】半角・全角を統一するクリーナーマクロ

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の機能が正しく使えないことがあります。

たとえば、

  • 「あいう」と「アイウ」は検索でヒットしない
  • フィルターが効かない
  • 集計時に同じ値なのに別項目になる

こうしたトラブルを避けるためには、「一度統一してから使う」というルールづけが非常に効果的です。

このマクロを使えば、次のようなメリットがあります。

  • 入力ミスによる不一致を自動で解消できる
  • データの前処理として安心して使える
  • 作業者が複数いても、ルール統一ができる
  • コピペ元に依存しない整った表が作れる

特に、外部データを取り込む場合や、複数人でファイルを扱う業務では、このような「見えない揺らぎ」を消すことが、運用安定化の鍵となります。

カスタマイズや応用例

上記の例では「全角に統一」しましたが、「半角に統一」したい場合は、vbWidevbNarrow に変えるだけです。

c.Value = StrConv(c.Value, vbNarrow)

また、カタカナのみを半角に変える記号はそのまま残したいといったケースも、組み合わせ次第で柔軟に対応可能です。

さらに、次のような応用処理も追加できます。

  • Trim を使って余分なスペースを削除
  • UCaseLCaseで大文字・小文字の統一
  • 数字や日付のフォーマット調整

データ整形の第一歩として、この「全角・半角統一マクロ」は、非常に汎用性の高い仕組みです。

まとめ

Excelでの文字データの管理において、「半角・全角の違い」は予期せぬエラーの原因になりがちです。

StrConv関数を使った統一マクロを使えば、見えない文字の違いをなくして、データを綺麗に整えることが可能です。

今回の内容を整理すると、次のようなポイントがあります。

  • StrConv関数を使えば、簡単に文字種変換ができる
  • 半角・全角の統一は、検索・集計トラブルの予防になる
  • マクロで一括処理すれば、誰でもミスなく作業できる

日々のExcel作業を快適にするために、まずはこの「クリーナーマクロ」から始めてみてください。整ったデータは、次の業務の効率を大きく左右します。

コメントする

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

上部へスクロール