テキストボックスで入力した文字列のふりがなを取得したいが?

Question 101.1 Previous Next
詳細は こちら セルに入力された漢字から、ふりがなを取り出すことはできるのですが、
ユーザーフォーム内の作業で、テキストボックス1に入力された漢字からふりがなを取り出し、テキストボックス2に表示することはできますか。
  TextBox1.Phonetics(1).CharacterType = xlHiragana
  ふりがな2 = Application.WorksheetFunction.Phonetic(TextBox1)
では、エラーになってしまいます。 よい方法があれば、教えてください。
Answer   Copyright (C) 2010.4.10 永井善王
拙著 「 ExcelVBAマクロ500連発―すぐに使える実用パーツ集〈第2弾〉 」 をご愛読いただいているようで、ありがとうございます。
ユーザーフォーム 「ふりがな」に関係するサンプルは、本の162ページ以後に 6つ載っていますが、いずれも、セルに入力された文字列のふりがなを操作するものです。 今回、あなたが知りたいのは、テキストボックスに入力された文字列に「ふりがな」を振る方法ですね。

たとえば、右図内の上側にあるテキストボックス1に入力された文字列は、
文字列 = TextBox1.Text とすれば取得できます。 そして、変数「文字列」のふりがなは、
フリガナ = Application.GetPhonetic(文字列) とすれば取得できますが片仮名になります。

平仮名にしたい場合、GetPhoneticメソッドには今のところ相当する引数がないので、StrConv関数で変換することになります。
以上をまとめると、ユーザーフォームのコード画面で、下記のように作成すればよいでしょう。
ひらがなの場合
Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
    文字列 = TextBox1.Text
    フリガナ = Application.GetPhonetic(文字列)
    TextBox2.Text = StrConv(フリガナ, vbHiragana)
End Sub
GetPhoneticメソッド
機能  … 指定した文字列の日本語のふりがなを取得する
構文  … Application.GetPhonetic(Text) Text にはふりがなを取得したい文字列を指定する(省略可)
留意点 … ふりがなは1つとは限らない
後日情報
500連発第2弾は完売になりました。 が、その後に発売された下記の本にも、同様のマクロが掲載されています。
 ・ Excel VBA そのまま使える実用マクロ500連発 の227~229番
 ・
Excel VBA 実用マクロ 800連発 [中・上級編] の424~430番

 

Excel VBA Macro