
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がオフになりました。

こんな記事も書いています
