Excel (VBA)

Excel VBAに関するフォーラムです。
  • 解決済みのトピックにはコメントできません。
このトピックは解決済みです。
質問

 
(指定なし : 指定なし)
Userform.Hide
投稿日時: 20/03/14 21:45:40
投稿者: naniwa

Userform1とUserform2があり、それぞれにコントロールをたくさん配置しております。Useform1のコマンドボタンをクリックすると、Userform1.hideとUserform2.showを実行します。
そのあと、Userform2のコマンドボタンをクリックすると、Userform1.showとUnload Userform2を実行します。
このとき、再表示されたUserform1のどのコントロールにもカーソルが表示されません。
できれば、Userform1がhideされるときのアクティブコントロールを保持したいのですが、どのようにすればできますでしょうか。ご教示のほど、よろしくお願い致します。

回答
投稿日時: 20/03/14 22:08:01
投稿者: WinArrow
投稿者のウェブサイトに移動

>のどのコントロールにもカーソルが表示されません
 そんなことはありません。
コマンドボタンにカーソルがあるはずです。
  
対策
プロパティウィンドウで
Userform1のCommandButton1の
TakeFocusOnClickプロパティを「False」に設定しておきます。
  
これは、コマンドボタンをクリックしても、
コマンドボタンにフォーカスが移動しないようにするためのものです。
 
 

投稿日時: 20/03/14 22:40:32
投稿者: naniwa

WinArrow様
 
CommandButton1のTakeFocusOnClickプロパティは「False」になっているのですが、Userform1が再表示されたときにTextbox1ならカーソルがそのまま残っているのにTextbox2の場合はカーソルが表示されない現象があります。テキストボックス側に設定しているイベントのどれかが邪魔をしているのでしょうか。
Textbox1に設定しているイベント=Exit、KeyPress、MouseDown、Textbox2に設定しているイベント=KeyDown、KeyPress、MouseDownです。説明不足がありましたらご指摘をお願いできますでしょうか。

回答
投稿日時: 20/03/15 11:21:07
投稿者: WinArrow
投稿者のウェブサイトに移動

naniwa さんの引用:

CommandButton1のTakeFocusOnClickプロパティは「False」になっているのですが、Userform1が再表示されたときにTextbox1ならカーソルがそのまま残っているのにTextbox2の場合はカーソルが表示されない現象があります。

 
この現象は、最初の質問時に説明していただきたいですね・・・
後出しは、歓迎されませんよ!
 
naniwa さんの引用:

テキストボックス側に設定しているイベントのどれかが邪魔をしているのでしょうか。
Textbox1に設定しているイベント=Exit、KeyPress、MouseDown、
Textbox2に設定しているイベント=KeyDown、KeyPress、MouseDownです。説明不足がありましたらご指摘をお願いできますでしょうか。

 
イベントプロシジャについての理解ができていないのかな?
どのプロシジャも、「何んらかの操作をしたらとき」というプロsシジャですから
再表示に関係することはないと考えます。
 
それよりも
Userfoem_Activate
プロシジャの中を疑ってみましょう。
このプロシジャは、最初の表示と再表示と両方で動作しますから・・・
切り分ける必要があるか否かは判断できませんが・・・
 

投稿日時: 20/03/15 16:08:18
投稿者: naniwa

WinArrow 様
 
>Userfoem_Activate
プロシジャの中を疑ってみましょう。
このプロシジャは、最初の表示と再表示と両方で動作しますから
 
アドバイスに沿っていろいろと検証してみようと思います。
ご教示下さりありがとうございました。