テキストボックスの日本語入力方式(IME)を設定する(IMEModeプロパティ)
ユーザーフォームに設置したテキストボックスやコンボボックスにフォーカスが移ったときに日本語入力方式(IME)をどのようなモードでオンにするのかを設定するには IMEMode プロパティを使用します。ここでは Excel のユーザーフォームで IMEMode プロパティを使ってテキストボックスの日本語入力方式(IME)を設定する方法について解説します。
(Last modified: )
日本語入力方式を設定する
テキストボックスなどのコントロールにフォーカスが移ったときに、 IME をオンにするかどうか、またどのモードで IME をオンにするのかを設定するには IMEMode
プロパティを使用します。デフォルトでは IMEMode
の値は fmIMEModeNoControl
となっており、 IME の状態を変化させません(フォーカスが移る前の状態のままで変化させません)。
設定可能な値には次の種類があります。
定数 | 値 | 説明 |
---|---|---|
fmIMEModeNoControl | 0 | IME を制御しない |
fmIMEModeOn | 1 | IMEをオンにする |
fmIMEModeOff | 2 | IMEをオフにする(英語モード) |
fmIMEModeDisable | 3 | IMEをオフにする(キーボードでIMEをオンにできない) |
fmIMEModeHiragana | 4 | 全角ひらがなモードでIMEをオンにする |
fmIMEModeKatakana | 5 | 全角カタカナモードでIMEをオンにする |
fmIMEModeKatakanaHalf | 6 | 半角カタカナモードでIMEをオンにする |
fmIMEModeAlphaFull | 7 | 全角英数字モードでIMEをオンにする |
fmIMEModeAlpha | 8 | 半角英数字モードでIMEをオンにする |
fmIMEModeHangulFull | 9 | 全角ハングルモードでIMEをオンにする |
fmIMEModeHangul | 10 | 半角ハングルモードでIMEをオンにする |
コントロールに対する IME の設定を変更するには IMEMode
プロパティの項目をクリックしてください。そして表示されたドロップダウンメニューをクリックし設定する項目をクリックしてください。
例えばテキストボックスの IMEMode
プロパティに fmIMEModeKatakana
を設定し、全角カタカナモードで IME をオンにするように設定してみます。
ユーザーフォームを実際に表示して先ほど設定を行ったテキストボックスにフォーカスを移してみると、 IME が全角カタカナモードに変更されているのが確認できます。
このように IMEMode
プロパティの値を変更することで、コントロールにフォーカスを移したときに IME をどのモードで起動するのかを設定することができます。
VBAのプログラムの中でIMEModeプロパティを設定する
プロパティウィンドウを使って IMEMode
プロパティの値を変更する代わりに、 VBA のコードを記述して IMEMode
プロパティの値を変更することもできます。
プログラムの中で IMEMode
プロパティを設定する場合は次の書式を使用します。
オブジェクト.IMEMode [= fmIMEMode ]
対象のオブジェクトの IMEMode
プロパティに対してプロパティに対して IME のモードを表す値を代入します。代入可能な値はこのページの最初の方に記載してありますので参照されてください。
例えばコントロールにフォーカスが移ったときに IME をオフにされたい場合は fmIMEModeOff
を設定してください。
簡単なサンプルで試してみます。ユーザーフォームが表示される前に発生する Initialize
イベントに対するイベントプロシージャを作成し、その中で IMEMode
プロパティの値を設定します。ユーザーフォームが表示される前にコントロールのプロパティの設定が行われます。
※ Initialize
イベントに対するイベントプロシージャの使い方については「ユーザーフォームを表示する直前に発生するイベント(Initializeイベント)」を参照されてください。
ユーザーフォームのコントロールが何もないところをダブルクリックしてください。
ユーザーフォームの規定のイベントである Click
イベントに対するイベントプロシージャが表示されます。
今回はユーザーフォームの Initialize
イベントに対するイベントプロシージャ使用するので、コードウィンドウで次のようにイベントプロシージャを追加で記述してください。テキストボックスには IME を「全角英数字モード」でオンにし、コンボボックスには IME をオフにするように設定しています。
Private Sub UserForm_Initialize() TextBox1.IMEMode = fmIMEModeAlphaFull ComboBox1.IMEMode = fmIMEModeOff End Sub
これでコードの記述は完了です。では実際に試してみます。「Sub/ユーザーフォームの実行」をクリックしてください。
ユーザーフォームが表示されました。テキストボックスにフォーカスがある場合は IMEMode
プロパティの値が fmIMEModeAlphaFull
に設定されているので IME が「全角英数字モード」になっています。
コンボボックスにフォーカスがある場合は IMEMode
プロパティの値が fmIMEModeOff
に設定されているので IME がオフになり英語モード(半角英数)になっています。
このように VBA のプログラムの中で IMEMode
プロパティの値を変更することができました。
-- --
Excel のユーザーフォームで IMEMode プロパティを使ってテキストボックスの日本語入力方式(IME)を設定する方法について解説しました。
( Written by Tatsuo Ikura )
著者 / TATSUO IKURA
これから IT 関連の知識を学ばれる方を対象に、色々な言語でのプログラミング方法や関連する技術、開発環境構築などに関する解説サイトを運営しています。