StrConv
StrConv関数は引数文字列を指定した文字の種類に変換します。
変換後の文字の種類はVbStrConv列挙型の定数で指定します。その際に定数の組み合わせ(全角→半角、ひらがな→カタカナ、の組み合わせなど)が可能です。
StrConvを使ってShift-JIS換算での文字列のバイト数の取得を行うことが出来ます。
そちらについては「VBAでバイト単位でのLenとMidとLeftとRight」を参照ください。
構文
1 |
Function StrConv(String, Conversion As VbStrConv, [LocaleID As Long]) |
String | 変換する文字列を指定します。 |
Conversion | 変換後の文字の種類をVbStrConv列挙型の定数で指定します。 |
LocaleID | LCIDと呼ばれる国別情報識別子を指定します。省略した場合はシステム設定値になります。日本語の場合は1041になります。世界の各国にIDが付与されています。 |
VbStrConv列挙型
定数 | 値 | 内容 |
---|---|---|
vbUpperCase | 1 | 大文字に変換します。 |
vbLowerCase | 2 | 小文字に変換します。 |
vbProperCase | 3 | 先頭の文字を大文字に変換します。 |
vbWide | 4 | 半角文字を全角文字に変換します。LocaleIDが中国、韓国、日本の場合のみ利用できます。 |
vbNarrow | 8 | 全角文字を半角文字に変換します。LocaleIDが中国、韓国、日本の場合のみ利用できます。 |
vbKatakana | 16 | ひらがなをカタカナに変換します。LocaleIDが日本の場合のみ利用できます。 |
vbHiragana | 32 | カタカナをひらがなに変換します。LocaleIDが日本の場合のみ利用できます。 |
vbUnicode | 64 | 文字コードをUnicodeに変換します。 |
vbFromUnicode | 128 | 文字コードをUnicodeからシステム既定の文字コード(ASCII)に変換します。 |
VbStrConv列挙型の定数の組み合わせ
VbStrConv列挙型の定数は+演算子で組み合わせることが可能です。
ただし、vbKatakana + vbHiragana(カタカナ + ひらがな)のような不正な組み合わせの場合は「実行時エラー ‘5’: プロシージャの呼び出し、または引数が不正です。」のエラーになります。
WindowsでのLocaleIDの設定
StrConv関数のLocaleIDを設定することはほとんどないと思いますが、既定値は以下のWindowsの設定で変更可能です。
Windows 7
コントロールパネル(カテゴリ表示)→「時計、言語、および地域」→「日付、時刻または数値の形式の変更」→「地域と言語」ダイアログ→「形式」タブ
Windows 8、10
コントロールパネル(カテゴリ表示)→「日付、時刻、または数値の形式の変更」→「地域」ダイアログ→「形式」タブ
サンプルコード
ひらがなを半角カタカナに変換するサンプルです。
1 2 3 4 5 6 7 8 9 |
Sub StrConvTest() Dim s s = "ありがとうございます" Debug.Print s s = StrConv(s, vbKatakana + vbNarrow) Debug.Print s End Sub |
実行結果