VBAで文字列を扱っていると、次のようなことはありませんか?
- 全角を半角へ変換したい
- ひらがな・カタカナを変換したい
- 英字の大文字・小文字を変換したい
このような場合は、StrConv関数を使うことで解決できます。
文字列の形式を変換できる、非常に便利な関数です。
この記事では、StrConv関数の基本から実務での活用方法まで分かりやすく解説します。
この記事でできること
- 全角・半角変換ができる
- ひらがな・カタカナ変換ができる
- 大文字・小文字変換ができる
StrConv関数とは?
StrConv関数は、文字列の形式を変換する関数です。
例えば:
- 全角 → 半角
- ひらがな → カタカナ
- 小文字 → 大文字
などの変換ができます。
基本:StrConv関数の使い方
基本構文はこちらです。
StrConv(文字列, 変換定数)
主な変換定数一覧
| 定数 | 内容 |
|---|---|
| vbUpperCase | 大文字へ変換 |
| vbLowerCase | 小文字へ変換 |
| vbWide | 全角へ変換 |
| vbNarrow | 半角へ変換 |
| vbKatakana | カタカナへ変換 |
| vbHiragana | ひらがなへ変換 |
大文字へ変換する
MsgBox StrConv("excel vba", vbUpperCase)
→ EXCEL VBA
小文字へ変換する
MsgBox StrConv("EXCEL VBA", vbLowerCase)
→ excel vba
全角へ変換する
MsgBox StrConv("ABC123", vbWide)
→ ABC123
半角へ変換する
MsgBox StrConv("ABC123", vbNarrow)
→ ABC123
ひらがな → カタカナ
MsgBox StrConv("あいうえお", vbKatakana)
→ アイウエオ
カタカナ → ひらがな
MsgBox StrConv("アイウエオ", vbHiragana)
→ あいうえお
セルの値を変換する
Range("A1").Value = StrConv(Range("A1").Value, vbNarrow)
セルの文字を半角へ変換します。
複数変換を組み合わせる
定数を足して使えます。
MsgBox StrConv("abc123", vbUpperCase + vbWide)
→ ABC123
実務での活用例
- 入力データ統一
- CSVデータ整形
- 住所データ変換
- 検索精度向上
データ整形では非常によく使われます。
注意点
① 環境依存がある
日本語変換系はWindows環境依存があります。
② 数値型には使用しない
文字列として扱う必要があります。
③ Nullに注意
Nullはエラーになります。
安全な書き方(おすすめ)
Dim val As Variant
val = Range("A1").Value
If Not IsNull(val) Then
MsgBox StrConv(val, vbNarrow)
End If
よくあるエラーと対処法
① 変換されない
変換定数が正しいか確認してください。
② 型が一致しません
Nullや数値型の可能性があります。
③ 日本語変換でエラー
環境依存の可能性があります。
④ コードは正しいのにエラーになる
コピー時に全角文字や特殊文字が混ざることがあります。
その場合は該当行を手入力し直すと解決することがあります。
まとめ
- StrConvは文字列変換を行う関数
- 全角・半角変換が可能
- ひらがな・カタカナ変換にも対応
- データ整形で非常に便利
StrConv関数を使いこなせるようになると、文字列整形やデータ統一が非常に楽になります。
実務ではかなり便利なので、ぜひマスターしておきましょう。

コメント