ユーザーフォーム上でヨミガナを自動表示

テキストボックスに入力した漢字名称からヨミガナを自動表示させます。
特に高度なことではありません。   APIを駆使してIMEから入力したカナ文字を取り出すような高度なことをやる方もいるのでしょうが、 ここで紹介するのは簡単な方法です。 IME制御の方法は「ふりがな自動入力のサブクラス(ダウンロード)をご覧下さい。



まずはサンプルをご覧下さい。
カナ名の自動表示
(画像をクリックすると、このサンプルがダウンロードできます)
ワークシート上ならPHONETIC関数があるので別のセルにヨミガナを表示させるのは簡単なことです。
ですがこれをユーザーフォームでやろうとすると簡単に思いつく方法がなかったりしませんか?
このサンプルの方法は比較的簡単ですので試してみて下さい。

このサンプルのコードはこれだけです。
それではユーザーフォームのコードを紹介します。

'***************************************************************************************************
'   漢字名の入力でカナ名を自動表示させるサンプル                    UF_YOMIGANA(Class)
'
'   作成者:井上治  URL:https://www.ne.jp/asahi/excel/inoue/ [Excelでお仕事!]
'***************************************************************************************************
'変更日付 Rev  変更履歴内容------------------------------------------------------------------------>
'12/01/22(1.00)新規作成
'20/02/25(1.10)*.xlsm化、他
'***************************************************************************************************
Option Explicit
'===================================================================================================
Const g_cnsPhoneticRange As String = "$A$1"                 ' ヨミガナ取得に利用するセル

'***************************************************************************************************
'   ■■■ コントロールイベント ■■■
'***************************************************************************************************
'* 処理名 :TXT_KANJI_Change
'* 機能  :漢字名テキストボックスのChangeイベント
'---------------------------------------------------------------------------------------------------
'* 返り値 :(なし)
'* 引数  :(なし)
'---------------------------------------------------------------------------------------------------
'* 作成日 :2012年01月22日
'* 作成者 :井上 治
'* 更新日 :2020年02月25日
'* 更新者 :井上 治
'* 機能説明:
'* 注意事項:
'***************************************************************************************************
Private Sub TXT_KANJI_Change()
    '-----------------------------------------------------------------------------------------------
    With ThisWorkbook.Worksheets(1)
        ' A1セルに漢字名をセット
        .Range(g_cnsPhoneticRange).Value = TXT_KANJI.Text
        ' ヨミガナを生成
        .Range(g_cnsPhoneticRange).SetPhonetic
        ' PHONETIC関数でセル値を取り出す
        TXT_KANA.Text = WorksheetFunction.Phonetic(.Range(g_cnsPhoneticRange))
        ' セル値の消去
        .Range(g_cnsPhoneticRange).ClearContents
    End With
End Sub

'----------------------------------------<< End of Source >>----------------------------------------
要はワークシートのセルのカナ情報を利用しているわけです。
どこかの使用していないセルにテキストボックスの漢字名をセットして、セルの直接入力したのではないのでSetPhoneticメソッドでカナを生成します。
これをワークシート関数利用(WorksheetFunction.Phonetic)で取り出しているわけです。

但し、この方法には若干の問題ががります。ここでのヨミガナはExcelが生成するヨミガナであって、漢字名にキー入力したものを取り込んでいるわけではありません。 極たまに音訓どちらでも取れるような語句だと誤った変換をする場合があります。

サンプルはChangeイベントを利用していますが、動作頻度がうるさいようであればExitイベントの方が良いかもしれません。