HOME > 即効テクニック > Excel VBA > ユーザーフォーム関連のテクニック > テキストボックスから振り仮名を取得する

即効テクニック

ユーザーフォーム関連のテクニック

テキストボックスから振り仮名を取得する

(Excel 97/2000)
テキストボックスに入力された振り仮名を取得するには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