対象:Excel2003, Excel2007, Excel2010
VBA(Visual Basic for Applications)でマクロを作成する場合、本格的なダイアログを作成するにはフォームモジュールを利用します。
しかし、ユーザーに凝った入力をしてもらう必要がなければ、InputBox関数でも十分です。
その、InputBox関数を利用して、インプットボックスを表示する場合、IME・日本語入力のオン・オフを制御したいということもあります。
[スポンサードリンク]
そんなコードをご紹介しておきます。
▼IMEがオフのときにオンにするコード
If IMEStatus = vbIMEModeOff Then SendKeys "{kanji}"
例えば、
If IMEStatus = vbIMEModeOff Then SendKeys "{kanji}"
tmp = InputBox("お名前を入力してください。")
というコードを実行すると、
「お名前を入力してください。」
と表示されたインプットボックスが、日本語入力がオンの状態でインプットボックスが表示されます。
SendKeysステートメントで「"{kanji}"」を引数に指定すると、キーボードで[半角/全角]キーが押されたのと同じ動きとなります。
但し、IMEがオンのときに「SendKeys "{kanji}"」するとオンだったIMEがオフになってしまうので、まず、IMEStatusを調べて、「vbIMEModeOff」のときに「SendKeys "{kanji}"」しています。
[スポンサードリンク]
- Newer:「スタイルアロマ」体験会に参加してきました。
- Older:自動メンバーのアイコンの意味
Home » エクセルマクロ・Excel VBAの使い方 » インプットボックスでIME・日本語入力をオンにするVBAコード