- ベストアンサー
EXCEL VBA でインプットボックスを開いたときの入力モードの設定について
EXCEL VBAのインプットボックスのことで教えていただきたいことがあります。 Dim 行数 As Variant 行数 = Application.InputBox("数字を入力してください") インプットボックスを設置しているのですが、 このインプットボックスがアップされたときにIMEをオフにすることは出来るのでしょうか。 インプットボックスに入力する数字を強制的に半角で入力するようにしたいと考えています。 IMEMode = fmIMEModeOff をどこかに入れたら出来るのではないかと思って色々やってみましたが、どうしても上手く作動してくれません。 よろしくお願いいたします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
a = Application.InputBox("数値を入力", Type:=1) で全角で数値を入力してもaには半角の数字の値が入ります。(ただし数宇以外は入力できない) Inputboxで IMEMode = fmIMEModeOff は無理です。 Inputboxにそっくりのユーザーフォームを作れば可能です。
その他の回答 (2)
- kuma3f
- ベストアンサー率63% (28/44)
私の場合は、作業とは関係ないセルで入力規則をxlIMEModeOffにしてInputBoxを表示させています。 例はA1で入力規則をオフにしてInputBoxを表示させています。 Dim 行数 As Variant Sheets("sheet1").Range("A1").Select Selection.Validation.IMEMode = xlIMEModeOff 行数 = Application.InputBox("数字を入力してください。")
お礼
なるほど。セルを指定してオフにするというやり方がありましたか! 全然気づきませんでした。 ありがとうございました。
- imogasi
- ベストアンサー率27% (4737/17069)
http://www.penhagi.com/access/ota2000/204.htm で載っている。それだけ有名ということかも。 APIを使わないと、IMEモードを触ることは、(一部取り入れられた機能(入力規則など)以外は)無理のようだ。 それとか上記に載っている便法を使うとか。
お礼
ありがとうございました。 とりあえず上で教えていただいたやり方でやってみます。
お礼
なるほど、ユーザーフォームをインプットボックス代わりに使えばいいんですね。 コロンブスの卵というか。 a = Application.InputBox("数値を入力", Type:=1) のやり方でもよかったのですが、エンターキーを押さなくても良いやリ方がないか探していました。 ありがとうございました。