ラピードアクト株式会社

技術記事:ExcelVBAで仕事を効率化しようVol.22

みなさん、こんにちは。
ITソリューション事業部の林です。

本記事では、ExcelVBAのテクニックを紹介・解説いたします。

今回紹介するのは、「種類を指定して文字列を変換する」です。

【目次】

  1. 種類を指定して文字列を変換するには?
  2. 構文
  3. 使用例
  4. 終わりに

それでは、始めましょう!

種類を指定して文字列を変換するには?

種類を指定して文字列の変換ができる関数は、StrConv関数です。
この関数では、引数の中で変換後の文字種類を指定することができます。

前回の記事で、Lcase/Ucase関数を使った英文字の変換を紹介しましたが、実はStrConv関数でも同様の変換が可能です。

構文

StrConv関数の構文は以下の通りです。

StrConv(文字列, 変換後の文字種類)

関数の戻り値は、指定した文字種類に変換された文字列が出力されます。
変換後の文字種類には、以下の定数が使用できます。

定数変換の種類
vbUpperCase大文字に変換(Ucase関数と同機能)
vbLowerCase小文字に変換(Lcase関数と同機能)
vbProperCase文字列の各単語の先頭の文字を大文字に変換
vbWide半角文字を全角文字に変換
vbNarrow全角文字を半角文字に変換
vbKatakanaひらがなをカタカナに変換
vbHiraganaカタカナをひらがなに変換
vbUnicode文字列をUnicodeに変換
vbFromUnicodeUnicode文字列をシステム既定のコードに変換

定数にはたくさん種類がありますが、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関数の紹介でした。
それでは、また次回お会いしましょう!