Excelで、ユーザーフォームを使っているときに、テキストボックスに日本語で入力させたい、全角にしたり、半角英数字を入力させたいことがあります。
それを設定するには「IMEMode」プロパティを使います。
「IMEMode」プロパティを手動とVBAでプロパティを設定する方法の記録です。
下図はExcel2016です。
< スポンサーリンク >
「IMEMode」の設定値は以下です。
fmIMEModeNoControl | IMEを制御しません(規定値) |
fmIMEModeOn | IMEをオン |
fmIMEModeOff | IMEをオフ(英語モード) |
fmIMEModeDisable | IMEをオフ(ユーザーはキーボードでIMEをオンにできません) |
fmIMEModeHiragana | 全角ひらがなモードでIMEをオン |
fmIMEModeKatakana | 全角カタカナモードでIMEをオン |
fmIMEModeKatakanaHalf | 半角カタカナモードでIMEをオン |
fmIMEModeAlphaFull | 全角英数字モードでIMEをオン |
fmIMEModeAlpha | 半角英数字モードでIMEをオン |
「IMEMode」をプロパティで設定
IMEをオンにしてみます。
ユーザーフォームのテキストボックスをアクティブにし、プロパティウィンドウのボタンをクリックします。
プロパティウィンドウの「IMEMode」欄に「fmIMEModeOn」を設定します。
ユーザーフォームを実行すると、テキストボックスがアクティブになると、IMEがオンになりました。
「IMEMode」をVBAで設定
VBAで設定するには、Initializeイベントを使います。
ユーザーフォームをダブルクリックします。
右側のプロシージャボックスで「Initialize」を選択します。
テキストボックスのIMEModeプロパティでIMEをオフにするよう、下記のように書きます。
Private Sub UserForm_Initialize()
TextBox1.IMEMode = fmIMEModeOff
TextBox2.IMEMode = fmIMEModeOff
TextBox3.IMEMode = fmIMEModeOff
End Sub
ユーザーフォームを実行すると、テキストボックスがアクティブになると、IMEがオフになりました。
こんな記事も書いています