|
こんばんは。
>
>そもそも、こんなまどろっこしい手法に至ったのは、InputBox関数自体にIMEを制御する機能がないからなのです。
これは、私もUserformを使って、Inputboxを自作する方法が適当だと思いますねえ!!
>
>SendKeys "{kanji}"はIMEをオン/オフするだけですよね?ブックのオープン当初では、これでうまくいきます。ところが私のこのUserForm1は何度も使用されるのです。対になったサブルーチンIMEoffがあり、メールアドレスなどを要求させるのです。
{kanji}では、そうなりますね!!
>
>Me.Hideを入れただけで、うまく行くのはなぜなのか釈然としない。ちょっと説明が欲しいなあ。
ユーザーフォームがモーダルで表示されている状態では、入力規則の設定では、
IMEのモード変更は簡単なテストコードでは出来ませんでした。
Me.Hideの実行する順序の変更は、このテスト結果からの推測に過ぎません。
>私のコードでうまく行かないのはオープン当初だけで、後には全て思い通りに行くのです。
このうまくいくという手順がわかりませんが、私の環境では、
何度繰り替えしても、出来るものは出来るし、出来ないものはできないと言う結果でした。
これを明確にするには、もっと山ちゃんさんと私の扱っているUserformの同期を
取る必要があるかもしれません。Win2000&Excel2002
因みにUserformとIMEではテキストボックスのImemodeだって、うまく作動しない場合が
ありますよ!!
Frameに配置すると、IME関連は、是正されますが、これはこれで
別の問題が生じたりして、厄介です。
>まるっきしサラにして、InputBox関数のIMEを制御するような手法を出して頂けたら。
これは、繰り返しますが、私も Userformで自作して----アドイン登録し、汎用的に使えるようにする
ですね!!
今回の事との因果関係はないと思いますが、
モーダルモードのUserformを表示した状態で
Application.Inputboxメソッドを使用すると、
実行後のUserformがモーダルモードになっていると言う現象を確認しています。
(今回は、Inputbox実行後に hideなので直接関係ないですけど)
|
|