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