基本構文
StrConv(string, conversion[, localeID])
string
(必須):変換対象の文字列(String型)conversion
(必須):変換方法を指定する定数(後述)localeID
(省略可):ロケールID(言語や地域の設定)を指定。通常は省略してOK。
主な変換定数(conversion 引数)
定数名 | 値 | 説明 |
---|---|---|
vbUpperCase | 1 | 文字列を大文字に変換 |
vbLowerCase | 2 | 文字列を小文字に変換 |
vbProperCase | 3 | 先頭文字だけ大文字に変換(英単語のタイトルケース) |
vbWide | 4 | 半角英数字を全角に変換 |
vbNarrow | 8 | 全角英数字を半角に変換 |
vbKatakana | 16 | ひらがなをカタカナに変換 |
vbHiragana | 32 | カタカナをひらがなに変換 |
使い方の例
1. 大文字・小文字変換
Dim str As String
str = "Excel VBA"
Debug.Print StrConv(str, vbUpperCase) ' 出力: EXCEL VBA
Debug.Print StrConv(str, vbLowerCase) ' 出力: excel vba
Debug.Print StrConv(str, vbProperCase) ' 出力: Excel Vba
※ vbProperCase
は単語の先頭だけ大文字にしますが、VBA標準では単語の区切りをスペースだけと認識します。
2. 半角・全角変換
Dim str2 As String
str2 = "ABC123アイウ"
Debug.Print StrConv(str2, vbWide) ' 出力: ABC123アイウ(半角→全角&ひらがな→カタカナ)
Debug.Print StrConv(str2, vbNarrow) ' 出力: ABC123アイウ(全角→半角)
vbWide
は半角英数字を全角にします。カタカナはひらがなに変換しませんが、vbWide
の挙動は環境により異なることがあります。
3. ひらがな・カタカナ変換
Dim str3 As String
str3 = "こんにちは"
Debug.Print StrConv(str3, vbKatakana) ' 出力: コンニチハ
Dim str4 As String
str4 = "コンニチハ"
Debug.Print StrConv(str4, vbHiragana) ' 出力: こんにちは
複数の変換を組み合わせる方法
conversion
引数はビット演算可能なので、複数の変換を同時に指定できます。
Dim str5 As String
str5 = "abc123あいう"
' 小文字→大文字 + 半角→全角
Debug.Print StrConv(str5, vbUpperCase Or vbWide) ' 出力: ABC123あいう
注意点・補足
StrConv
は日本語文字の扱いに特化しているため、日本語環境で特に便利。vbProperCase
は英語圏向けの機能なので、単語の区切りがスペースでないと正しく動作しません。localeID
は地域設定を変えたい時に使いますが、通常は省略して問題ありません。- VBAの
LCase
、UCase
関数と似ていますが、StrConv
はより多機能で日本語特有の変換にも対応しています。
まとめ
定数 | 機能 | 例 |
---|---|---|
vbUpperCase | 大文字に変換 | “abc” → “ABC” |
vbLowerCase | 小文字に変換 | “ABC” → “abc” |
vbProperCase | 単語の頭文字だけ大文字に変換 | “hello world” → “Hello World” |
vbWide | 半角英数字を全角に変換 | “ABC123” → “ABC123” |
vbNarrow | 全角英数字を半角に変換 | “ABC123” → “ABC123” |
vbKatakana | ひらがなをカタカナに変換 | “あいう” → “アイウ” |
vbHiragana | カタカナをひらがなに変換 | “アイウ” → “あいう” |