半角カタカナを全角ひらがなに変換する(StrConv関数)

半角カタカナと戦う(StrConv関数)

名簿のふりがな欄

いろんな名簿を作る必要があって、着手してから気がついた。

名簿のふりがな欄、ふりがなの付け方めちゃくちゃやんけ!

ある名簿は全角ひらがな。またある名簿は半角カタカナ。

んで、StrConv関数を使ってみた。

半角カタカナを全角ひらがなにできるか

やってみた。

イミディエイト・ウインドウに、

?StrConv("ラルフ・ブライアント",vbHiragana)

と入力して[Enter]!

f:id:akashi_keirin:20180412200747j:plain

全然ダメwww

半角カタカナを全角カタカナにできるか

こんどは、

?StrConv("ラルフ・ブライアント",vbWide)

と入力して[Enter]!

f:id:akashi_keirin:20180412200756j:plain

おお! 半角カタカナから全角カタカナというのはできるようだ。ありがたい。

ちゃんと「ブ」(2文字)が「ブ」(1文字)になっとるし。

一旦全角カタカナにしてから全角ひらがなへ

全角カタカナから全角ひらがなならフツーにできると思うので、

?StrConv(StrConv("ラルフ・ブライアント",vbWide),vbHiragana)

これで大丈夫のはず。

[Enter]!

f:id:akashi_keirin:20180412200807j:plain

やはり。

半角カタカナを全角ひらがなに変換するFunction

作ってみた。

リスト1 標準モジュール
Public Function convertSingleByteKatakanaToDoubleByteHiragana _
                  (ByVal targetString As String) As String
  Dim tmp As String
  tmp = StrConv(targetString, vbWide)
  tmp = StrConv(tmp, vbHiragana)
  convertSingleByteKatakanaToDoubleByteHiragana = tmp
End Function

プロシージャ名が無駄に長い。

まあ、いったん全角文字に変えてから、ひらがなに変換してreturnしているだけの簡単なFunction。

使ってみた

イミディエイト・ウインドウに

?convertSingleByteKatakanaToDoubleByteHiragana("フランシス・ブッフホルツ")

と入力して[Enter]!

f:id:akashi_keirin:20180412200818j:plain

ほれ、この通り。

おわりに

半角カタカナを全角カタカナに変換できるんなら、半角カタカナを直接全角ひらがなに変換できても良さそうなものだけれど、〈半角→全角〉、という処理と〈カタカナ→ひらがな〉という処理を分けておくことに意義があるのでしょうなあ。