指定した文字列を変換して、バリアント型 (内部処理形式 String の Variant) で返します。
構文
StrConv(string, conversion [, LCID ] )
StrConv 関数の構文には、次の引数があります。
| 引数 | 説明 |
|---|---|
| string | 必須。 変換される文字列式を指定します。 |
| conversion | 必ず指定します。 整数データ型の値を指定します。 実行する変換のタイプを指定する列挙型の値です。 |
| LCID | 省略可能です。 システム LocaleID と異なる場合は、LocaleID。 (既定値はシステム LocaleID) |
設定
変換引数の設定は次のとおりです。
| 定数 | 値 | 説明 |
|---|---|---|
| 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 for Applications (VBA) によって指定されます。 その結果、実際の値の代わりにコード内の任意の場所で使用できます。 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 形式のバイト配列から変換を行う場合は、代入ステートメントを使用します。
クエリの例
| Expression | 結果 |
|---|---|
| SELECT strConv(ProductDesc,1) AS Expr1 FROM ProductSales; | "ProductDesc" フィールドの値を大文字に変換し、列 Expr1 に表示します |
| SELECT strConv(ProductDesc,2) AS 小文字 ID FROM ProductSales; | "ProductDesc" フィールドの値を小文字に変換し、列小文字 ID で表示します。 すべての単語の最初の文字を "ProductDesc" から大文字に変換し、列 PropercaseID に表示します。 その他の文字はすべて小文字のままです。 |
VBA の例
注
次の例は、Visual Basic for Applications (VBA) モジュールでのこの関数の使用方法を示しています。 VBA の使用方法の詳細については、[検索] の横にあるドロップダウン リストで [開発者用リファレンス] を選び、検索ボックスに検索する用語を入力します。
この例では、StrConv 関数を使用して Unicode 文字列を ANSI 文字列に変換します。
Dim i As Long
Dim x() As Byte
x = StrConv("ABCDEFG", vbFromUnicode) ' Convert string.
For i = 0 To UBound(x)
Debug.Print x(i)
Next