みなさん、こんにちは。
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関数の紹介でした。
それでは、また次回お会いしましょう!