※注意:これ、最近はできなくなったようですね。Excelというか、MS-IMEの仕様変更かもしれませんね。せっかくですから、コンテンツは残しておきます。
ワークシート上では、セルに入力した文字のふりがなが自動的に登録されます。
セルのふりがなは[書式]-[ふりがな]-[表示/非表示]で表示されますし、PHONETIC関数で取得することも可能です。
セルを使わないで、VBAでふりがなを取得するには、ApplicationオブジェクトのGetPhoneticメソッドを実行します。
Sub Sample1() Dim buf As String buf = InputBox("日本語を入力して!") MsgBox Application.GetPhonetic(buf) End Sub
→
このGetPhoneticメソッド、あまり知られていませんが、すべての読み(ふりがな)を取得することができます。
使い方はDir関数と同じです。引数を省略すると、前回指定した引数が指定されたものとみなされ、次の読み(ふりがな)を返します。
すべての読み(ふりがな)を返すとGetPhoneticメソッドは空欄を返します。
入力された文字の、すべての読み(ふりがな)を取得するには次のようにします。
Sub Sample2() Dim buf As String, Phonetic As String, Ans As String buf = InputBox("日本語を入力して!") Phonetic = Application.GetPhonetic(buf) Do While Phonetic <> "" Ans = Ans & vbCrLf & Phonetic Phonetic = Application.GetPhonetic() Loop MsgBox Ans End Sub
→
UserFormで使うと便利かもしれませんね。
Private Sub TextBox1_Change() Dim Phonetic As String With ComboBox1 .Clear ''←これを忘れずに! Phonetic = Application.GetPhonetic(TextBox1) Do While Phonetic <> "" .AddItem Phonetic Phonetic = Application.GetPhonetic() Loop End With End Sub
テキストボックスのChangeイベントですから、文字を入力するたびに実行されちゃいますが、タイムラグはほとんど感じません。