目次
概要
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の処理や集計精度が大幅に向上します。日々の業務でのデータ整形に、ぜひご活用ください。