• ベストアンサー

EXCEL VBA でインプットボックスを開いたときの入力モードの設定について

EXCEL VBAのインプットボックスのことで教えていただきたいことがあります。 Dim 行数 As Variant 行数 = Application.InputBox("数字を入力してください") インプットボックスを設置しているのですが、 このインプットボックスがアップされたときにIMEをオフにすることは出来るのでしょうか。 インプットボックスに入力する数字を強制的に半角で入力するようにしたいと考えています。 IMEMode = fmIMEModeOff をどこかに入れたら出来るのではないかと思って色々やってみましたが、どうしても上手く作動してくれません。 よろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • suz83238
  • ベストアンサー率30% (197/656)
回答No.2

a = Application.InputBox("数値を入力", Type:=1) で全角で数値を入力してもaには半角の数字の値が入ります。(ただし数宇以外は入力できない) Inputboxで IMEMode = fmIMEModeOff は無理です。 Inputboxにそっくりのユーザーフォームを作れば可能です。

takohasisa
質問者

お礼

なるほど、ユーザーフォームをインプットボックス代わりに使えばいいんですね。 コロンブスの卵というか。 a = Application.InputBox("数値を入力", Type:=1) のやり方でもよかったのですが、エンターキーを押さなくても良いやリ方がないか探していました。 ありがとうございました。

その他の回答 (2)

  • kuma3f
  • ベストアンサー率63% (28/44)
回答No.3

私の場合は、作業とは関係ないセルで入力規則をxlIMEModeOffにしてInputBoxを表示させています。 例はA1で入力規則をオフにしてInputBoxを表示させています。 Dim 行数 As Variant Sheets("sheet1").Range("A1").Select Selection.Validation.IMEMode = xlIMEModeOff 行数 = Application.InputBox("数字を入力してください。")

takohasisa
質問者

お礼

なるほど。セルを指定してオフにするというやり方がありましたか! 全然気づきませんでした。 ありがとうございました。

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.1

http://www.penhagi.com/access/ota2000/204.htm で載っている。それだけ有名ということかも。 APIを使わないと、IMEモードを触ることは、(一部取り入れられた機能(入力規則など)以外は)無理のようだ。 それとか上記に載っている便法を使うとか。

takohasisa
質問者

お礼

ありがとうございました。 とりあえず上で教えていただいたやり方でやってみます。

関連するQ&A

専門家に質問してみよう