VBA 文字列変換(StrConv)

基本構文

StrConv(string, conversion[, localeID])
  • string (必須):変換対象の文字列(String型)
  • conversion (必須):変換方法を指定する定数(後述)
  • localeID (省略可):ロケールID(言語や地域の設定)を指定。通常は省略してOK。

主な変換定数(conversion 引数)

定数名説明
vbUpperCase1文字列を大文字に変換
vbLowerCase2文字列を小文字に変換
vbProperCase3先頭文字だけ大文字に変換(英単語のタイトルケース)
vbWide4半角英数字を全角に変換
vbNarrow8全角英数字を半角に変換
vbKatakana16ひらがなをカタカナに変換
vbHiragana32カタカナをひらがなに変換

使い方の例

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のLCaseUCase関数と似ていますが、StrConvはより多機能で日本語特有の変換にも対応しています。

まとめ

定数機能
vbUpperCase大文字に変換“abc” → “ABC”
vbLowerCase小文字に変換“ABC” → “abc”
vbProperCase単語の頭文字だけ大文字に変換“hello world” → “Hello World”
vbWide半角英数字を全角に変換“ABC123” → “ABC123”
vbNarrow全角英数字を半角に変換“ABC123” → “ABC123”
vbKatakanaひらがなをカタカナに変換“あいう” → “アイウ”
vbHiraganaカタカナをひらがなに変換“アイウ” → “あいう”
タイトルとURLをコピーしました