即効テクニック |
テキストボックスに入力された振り仮名を取得するにはGetPhoneticメソッドを用います 例えばユーザフォーム上で氏名入力を行う際に読み仮名の入力を省略するような場合、テキストボックスのChangeイベントやExitイベントでApplication.GetPhonetic(テキスト)・・・とします。 実行にはユーザフォームに・・・ TextBox1 - 文字入力用 TextBox2 - 振り仮名表示用 を貼り付け、フォームモジュールに書きコードを記述します。
'========テキストボックスExitイベント======== Private Sub TextBox1_Exit _ (ByVal Cancel As MSForms.ReturnBoolean) TextBox2.Value = Application.GetPhonetic(TextBox1.Value) End Sub
(読み仮名候補がいくつもある場合) 上のサンプルでは望むような振り仮名がうまく表示されるとは限りません。ここではコマンドボタンを使って候補を切替える方法を考えます。 なお、切替えの際には変換が初回であるか否かを記憶させておく必要がありますので、テキストボックスのTagプロパティーを使っています。 さらにコマンドボタンを1つ貼り付けてクリックイベントに下記サンプルを記述してください。
Private Sub CommandButton1_Click() Dim strTemp As String If TextBox2.Tag = "" Then TextBox2.Value = _ Application.GetPhonetic(TextBox1.Value) TextBox2.Tag = 1 Else strTemp = Application.GetPhonetic() ' 引数省略 If strTemp <> "" Then TextBox2.Value = strTemp Else '振り仮名候補がない場合初期状態に戻す TextBox2.Tag = "" TextBox2.Value = "" End If End If End Sub