VBA閻魔帳
●大文字、小文字、かたかな、ひらがなの変換には StrCnv関数
Helpからの抜粋
変換した文字列をバリアント型 (内部処理形式 String の Variant) で返します。
構文
StrConv(string, conversion, LCID)
StrConv 関数の構文は、次の名前付き引数から構成されます。
| 指定項目 | 内容 |
|---|---|
| string | 必ず指定します。変換する文字列式を指定します。 |
| conversion | 必ず指定します。整数型 (Integer) の値を指定します。実行する変換の種類の値の合計を指定します。 |
| LCID | 省略可能です。システムとは異なる国別情報識別子 (LCID) を指定できます。既定値はシステムが使用する LCID です。 |
設定値
名前付き引数 conversion には、次のいずれかの定数または値を指定します。
| 定数 | 値 | 内容 |
|---|---|---|
| vbUpperCase | 1 | 文字列を大文字に変換します。 |
| vbLowerCase | 2 | 文字列を小文字に変換します。 |
| vbProperCase | 3 | 文字列の各単語の先頭の文字を大文字に変換します。 |
| vbWide* | 4* | 文字列内の半角文字 (1 バイト) を全角文字 (2 バイト) に変換します。 |
| vbNarrow* | 8* | 文字列内の全角文字 (2 バイト) を半角文字 (1 バイト) に変換します。 |
| vbKatakana** | 16** | 文字列内のひらがなをカタカナに変換します。 |
| vbHiragana** | 32 | 文字列内のカタカナをひらがなに変換します。 |
| vbUnicode | 64 | システムの既定のコード ページを使って文字列を Unicode に変換します。Macintosh. では使用できません) |
| vbFromUnicode | 128 | 文字列を Unicode からシステムの既定のコード ページに変換します。Macintosh. では使用できません) |
* 国別情報の設定が中国、韓国、および日本の場合に適用されます。
** 国別情報の設定が日本の場合のみ有効です。
メモ これらの定数は Visual Basic で定義されているものです。したがって、コードの中の任意の場所で、実際の値の代わりに使用できます。通常、定数は互いに矛盾しない限り、組み合わせて指定できます。たとえば、定数 vbUpperCase と vbWide を組み合わせることはできます。しかし、定数 vbUnicode と vbFromUnicode は指定内容が矛盾するため、組み合わせることはできません。また、不適切な場所で定数 vbWide、vbNarrow、vbKatakana、および vbHiragana を指定した場合は、実行時エラーが発生します。
大文字/小文字を正しく区別する単語セパレータは、Null 値 (Chr$(0))、水平タブ (Chr$(9))、ライン フィード (Chr$(10))、垂直タブ (Chr$(11))、フォーム フィード (Chr$(12))、キャリッジ リターン (Chr$(13))、およびスペース (SBCS の場合) (Chr$(32)) です。DBCS のスペースの実際の値は、国によって異なります。
解説
ANSI 形式のバイト型配列を文字列に変換する場合は、StrConv 関数を使用してください。Unicode 形式の配列を変換する場合は、代入式を使用してください。
例
| Sub test() Dim i As Long Dim x() As Byte x = StrConv("ABCDEFG", vbFromUnicode) ' 文字列を変換します。 For i = 0 To UBound(x) Debug.Print x(i) Next End Sub |
表示でイミディエント ウィンドウを表示させて 上のテストを実行してみよう!!
67
68
69
70
71
と 表示されるはずです
ひらがなをカタカナに変換したり大文字を小文字に変換させたいときには
この関数を使えば、一気に変換できますね^^