とっておきの手土産を教えて

EXCEL VBAのインプットボックスのことで教えていただきたいことがあります。

Dim 行数 As Variant
行数 = Application.InputBox("数字を入力してください")

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

A 回答 (3件)

a = Application.InputBox("数値を入力", Type:=1)


で全角で数値を入力してもaには半角の数字の値が入ります。(ただし数宇以外は入力できない)
Inputboxで
IMEMode = fmIMEModeOff
は無理です。
Inputboxにそっくりのユーザーフォームを作れば可能です。
    • good
    • 1
この回答へのお礼

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

お礼日時:2008/03/20 21:50

私の場合は、作業とは関係ないセルで入力規則をxlIMEModeOffにしてInputBoxを表示させています。


例はA1で入力規則をオフにしてInputBoxを表示させています。

Dim 行数 As Variant
Sheets("sheet1").Range("A1").Select
Selection.Validation.IMEMode = xlIMEModeOff
行数 = Application.InputBox("数字を入力してください。")
    • good
    • 1
この回答へのお礼

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

お礼日時:2008/03/20 21:52

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

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

お礼日時:2008/03/20 21:53

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


おすすめ情報

このQ&Aを見た人がよく見るQ&A