VBAで文字列の全角・半角、ひらがな・カタカナ、大文字・小文字を統一する方法【StrConvの使い方】

目次

概要

Excelで文字列を扱う際、全角と半角、ひらがなとカタカナ、大文字と小文字などが混在していると、検索・比較・集計で不一致が起きる原因になります。

そのようなときに便利なのが、VBAの StrConv 関数です。StrConv を使えば、文字種の統一(変換)を簡単に自動化することが可能です。

本記事では、VBAの StrConv 関数を使って文字列を指定形式に統一する方法を解説いたします。

サンプルコード

Sub NormalizeTextTypes()

    Dim cell As Range

    ' B列に、A列の文字列を「半角・英大文字」に変換して出力
    For Each cell In Range("A3:A8")
        cell.Offset(0, 1).Value = StrConv(cell.Value, vbNarrow + vbUpperCase)
    Next cell

    ' E列に、D列の文字列を「全角・カタカナ」に変換して出力
    For Each cell In Range("D3:D5")
        cell.Offset(0, 1).Value = StrConv(cell.Value, vbWide + vbKatakana)
    Next cell

End Sub

コード解説

  • StrConv(文字列, 変換種類)
    文字列の形式を変換するための関数です。
  • vbNarrow:半角に変換
  • vbWide:全角に変換
  • vbKatakana:カタカナに変換
  • vbHiragana:ひらがなに変換
  • vbUpperCase:英字をすべて大文字に変換
  • vbLowerCase:英字をすべて小文字に変換
  • vbProperCase:英単語の先頭文字を大文字に変換(例:”hello world” → “Hello World”)

処理例

  • "Test123"StrConv(..., vbNarrow + vbUpperCase)"TEST123"
  • "てすと"StrConv(..., vbWide + vbKatakana)"テスト"

Offset(0, 1) について

  • cell.Offset(0, 1) は、対象セルの右隣のセルを指します。
  • 元のデータを残しつつ、変換後の文字列を別列に出力したいときに有効です。

応用例

処理目的変換内容
社名や氏名の表記統一全角カタカナ
商品コードの整形半角英大文字+数字
データベースとの照合前処理小文字化、ひらがな統一など
入力データの検証用前処理半角大文字やProperCaseに変換

注意点

  • 変換対象の文字種が異なる場合、期待通りに変換されないことがあります。特に記号や特殊文字には注意が必要です。
  • 漢字は StrConv の変換対象外です。
  • StrConv の戻り値は**文字列型(String)**です。数値として扱いたい場合は明示的な型変換が必要です。

まとめ

本記事では、VBAの StrConv 関数を活用して文字列を統一する方法をご紹介いたしました。データの整形や標準化において、StrConv は非常に便利な機能です。

変換定数説明
vbNarrow半角に変換
vbWide全角に変換
vbKatakanaカタカナに変換
vbHiraganaひらがなに変換
vbUpperCase英字をすべて大文字に変換
vbLowerCase英字をすべて小文字に変換
vbProperCase単語の先頭文字だけ大文字に変換

文字列のばらつきを統一することで、Excelの処理や集計精度が大幅に向上します。日々の業務でのデータ整形に、ぜひご活用ください。

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

この記事を書いた人

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

目次