トップ回答者
ACCESSのVBでInputBoxへ入力するIMEを強制的に半角英数にするには

質問
回答
-
InputBox 相当の機能を Form で自作されてはいかがでしょうか?
そうすればテキストボックスの IME 入力モード/IMEMode プロパティを指定することが出来ます。
上記では、Private Sub MyInputBox() というプロシージャーを用意していますが、標準モジュールに下記のようなプロシージャーを用意すれば、「InputBox を呼び出していた既存のコード」を書き換えることなく呼び出せるでしょう。
'== 標準モジュール == Public Function InputBox( _ Prompt As Variant, _ Optional Title As Variant, _ Optional Default As Variant, _ Optional XPos As Variant, _ Optional YPos As Variant, _ Optional HelpFile As Variant, _ Optional Context As Variant) As String
※同名 Function で上書き中に、本物の InputBox を呼びたい場合は、VBA.InputBox と記述すれば OK
- 回答としてマーク ojizou12 2019年8月6日 2:41
すべての返信
-
InputBox 相当の機能を Form で自作されてはいかがでしょうか?
そうすればテキストボックスの IME 入力モード/IMEMode プロパティを指定することが出来ます。
上記では、Private Sub MyInputBox() というプロシージャーを用意していますが、標準モジュールに下記のようなプロシージャーを用意すれば、「InputBox を呼び出していた既存のコード」を書き換えることなく呼び出せるでしょう。
'== 標準モジュール == Public Function InputBox( _ Prompt As Variant, _ Optional Title As Variant, _ Optional Default As Variant, _ Optional XPos As Variant, _ Optional YPos As Variant, _ Optional HelpFile As Variant, _ Optional Context As Variant) As String
※同名 Function で上書き中に、本物の InputBox を呼びたい場合は、VBA.InputBox と記述すれば OK
- 回答としてマーク ojizou12 2019年8月6日 2:41
-
フォーム上のコマンドボタンから呼び出すのであれば、
コマンドボタンの背後に隠れるようにテキストボックスを配置しておいて、
そのテキストボックスの「IME 入力モード」プロパティを「半角英数」にしておいて、
InbutBoxを呼び出す前にそのテキストボックスにSetFocusすればいいでしょう。
ただ、私もフォームを作成してそれを呼び出す方法を推奨します。その方がパスワードに * でマスクをかけたりなどの設定ができます。フォームを1個作成するぐらいでそんなに容量は増えません。