HOME > 即効テクニック > Excel VBA > セル操作関連のテクニック > ふりがなを取得する(GetPhoneticメソッド)

即効テクニック

セル操作関連のテクニック

ふりがなを取得する(GetPhoneticメソッド)

(Excel 2000/2002/2003/2007)
セルに日本語を入力すると「ふりがな」が自動的に設定されます。セルのふりがなを表示するには、メニューから[書式]-[ふりがな]-[表示/非表示]を実行します。
また、セルに設定されているふりがなはPHONETIC関数で表示することも可能です。

セルに自動設定されるふりがなは、正確には「キーボードから入力した日本語変換前の文字列」です。したがって、もし"田中"を"でんちゅう"と入力して漢字に変換した場合、設定されるふりがなも"でんちゅう"になります。

セルにふりがなを設定するマクロは、マクロ記録で調べることができます。
次のマクロは、アクティブセルに"田中"と入力した操作をマクロ記録したものです。

Sub Sample1()
    Selection.FormulaR1C1 = "田中"
    Selection.Characters(1, 2).PhoneticCharacters = "タナカ"
End Sub
ふりがながカタカナで設定されたのは、[ふりがなの設定]ダイアログボックスで[全角カタカナ]が選択されているからです。この設定を[ひらがな]にすれば、ひらがなのふりがながマクロ記録されます。 さて、セルのふりがなは「キーボードから入力した日本語変換前の文字列」ですが、VBAには漢字の読みを調べる機能もあります。こちらはキーボードから入力される文字に関係なく、純粋に漢字の読みを調べる機能です。 漢字の読みを取得するには、ApplicationオブジェクトのGetPhoneticメソッドを実行します。次のマクロは、"田中"のふりがな(読み)を表示します。
Sub Sample2()
    MsgBox Application.GetPhonetic("田中")
End Sub
GetPhoneticメソッドは、常にカタカナの読みを返します。ひらがなに変換したいときはStrConv関数を使いましょう。次のマクロは"田中"のふりがな(読み)をひらがなで表示します。
Sub Sample3()
    MsgBox StrConv(Application.GetPhonetic("田中"), vbHiragana)
End Sub
GetPhoneticメソッドは日本語IMEの機能を使って漢字の読みを取得します。 パソコンに日本語IMEがインストールされていなかったり、Officeの言語設定で日本語が選択されていないと使用できません。 GetPhoneticメソッドにはおもしろい機能があります。一般的に日本語の漢字には複数の読みが存在しますが、GetPhoneticメソッドはすべての読みを取得することができるのです。 使い方はDir関数と同じで、引数の文字列を省略してGetPhoneticメソッドを実行すると、前回指定された文字列の読みを返します。すべての読みを取得すると最後に空欄を返します。次のマクロは、"亨"の読みをすべて取得して表示します。
Sub Sample4()
    Dim buf As String, msg As String
    buf = Application.GetPhonetic("亨")
    Do While buf <> ""
        msg = msg & buf & vbCrLf
        buf = Application.GetPhonetic()
    Loop
    MsgBox msg
End Sub
GetPhoneticメソッドはセルを必要としませんので、UserFormなどでも使えて便利です。 ●補足● GetPhoneticメソッドはExcel 2000で追加されたメソッドですので、Excel 97では使用できません。