みなさん、こんにちは。
ITソリューション事業部の林です。
本記事では、ExcelVBAのテクニックを紹介・解説いたします。
今回紹介するのは、「種類を指定して文字列を変換する」です。
【目次】
それでは、始めましょう!
種類を指定して文字列を変換するには?
種類を指定して文字列の変換ができる関数は、StrConv関数です。
この関数では、引数の中で変換後の文字種類を指定することができます。
前回の記事で、Lcase/Ucase関数を使った英文字の変換を紹介しましたが、実はStrConv関数でも同様の変換が可能です。
構文
StrConv関数の構文は以下の通りです。
StrConv(文字列, 変換後の文字種類)
関数の戻り値は、指定した文字種類に変換された文字列が出力されます。
変換後の文字種類には、以下の定数が使用できます。
| 定数 | 変換の種類 |
| vbUpperCase | 大文字に変換(Ucase関数と同機能) |
| vbLowerCase | 小文字に変換(Lcase関数と同機能) |
| vbProperCase | 文字列の各単語の先頭の文字を大文字に変換 |
| vbWide | 半角文字を全角文字に変換 |
| vbNarrow | 全角文字を半角文字に変換 |
| vbKatakana | ひらがなをカタカナに変換 |
| vbHiragana | カタカナをひらがなに変換 |
| vbUnicode | 文字列をUnicodeに変換 |
| vbFromUnicode | Unicode文字列をシステム既定のコードに変換 |
定数にはたくさん種類がありますが、StrConv関数で頻繁に使用するものは多くありません。
以下の使用例では、使用頻度の高い定数を使ったマクロを紹介します。
使用例
使用例① 変換後の文字列を表示
ここでは使用頻度の高い定数を使用しています。
大文字変換(vbUpperCase)/小文字変換(vbLowerCase)は、Ucase/Lcase関数を使用した方がコードが短く、かつ使いやすいので、vbUpperCase/vbLowerCaseはあえて使用していません。
Sub ExcelVBA_022_Example1()
'使用例① 変換後の文字列を表示
Debug.Print "半角文字⇒全角文字変換:" + StrConv("abc123", vbWide)
Debug.Print "全角文字⇒半角文字変換:" + StrConv("abc123", vbNarrow)
Debug.Print "ひらがな⇒カタカナ変換:" + StrConv("えくせるブイビーエー", vbKatakana)
Debug.Print "カタカナ⇒ひらがな変換:" + StrConv("えくせるブイビーエー", vbHiragana)
Debug.Print "単語の先頭を大文字変換:" + StrConv("excel vba", vbProperCase)
End Sub
【出力結果】

使用例② 文字列の表記を統一する
StrConvで最も活用シーンが高いのが、セルに入力された文字列の表記を統一することです。
文書の入力ルールにそぐわない入力が行われても、ある程度補正することができます。
Sub ExcelVBA_022_Example2()
'使用例② 文字列の表記を統一する
Dim StrFurigana As String
Dim StrTEL As String
StrFurigana = StrConv(Cells(2, 2).Value, vbWide + vbKatakana) '全角カタカナに変換
StrTEL = StrConv(Cells(2, 3).Value, vbNarrow) '半角に変換
Cells(2, 2).Value = StrFurigana '変換したフリガナをセルへ反映
Cells(2, 3).Value = StrTEL '変換した電話番号をセルへ反映
End Sub
【出力結果】

終わりに
以上、文字列を変換するStrConv関数の紹介でした。
それでは、また次回お会いしましょう!



















