トップページ > プログラム > 2014年11月12日 > 44wGY+45

書き込み順位&時間帯一覧

3 位/182 ID中時間01234567891011121314151617181920212223Total
書き込み数0000300000000000002000005



使用した名前一覧書き込んだスレッド一覧
デフォルトの名無しさん
Excel VBA 質問スレ Part35

書き込みレス一覧

Excel VBA 質問スレ Part35
121 :デフォルトの名無しさん[sage]:2014/11/12(水) 04:07:20.88 ID:44wGY+45
>>112,114
どっから画面の前面になったのかによるけど
フォームをクリックしたからって必ずしもActivateされるわけじゃないぞ
Excel VBA 質問スレ Part35
122 :デフォルトの名無しさん[sage]:2014/11/12(水) 04:15:09.34 ID:44wGY+45
>>113
UserForm1
Private Sub UserForm_Activate()
MsgBox "1"
End Sub

UserForm2
Private Sub UserForm_Activate()
MsgBox "2"
End Sub

ThisWorkbook
ub test()
UserForm1.Show vbModeless
DoEvents
UserForm2.Show vbModeless
End Sub

これでDoEventsの有りなしで俺の環境では動作が変わる
全ての環境でそうなるわけではないかもしれんが
DoEventsなしでは"2"のMsgBoxは表示されない
"1"のMsgBoxの前にForm2の表示が割り込むからだと思うが
Excel VBA 質問スレ Part35
123 :デフォルトの名無しさん[sage]:2014/11/12(水) 04:23:58.14 ID:44wGY+45
ああ、なんかSub test()のSが抜け落ちてる

>>115
前もどっかで同じ質問みたことあるけど
どういう考え方をしたらDoEventsとSleepが同じ所があるように思うんだろ
むしろ同じと思うところを言ってみてくれ
そしたら違いを説明できるかもしれん
Excel VBA 質問スレ Part35
126 :デフォルトの名無しさん[sage]:2014/11/12(水) 18:28:07.29 ID:44wGY+45
>>124
>>122は、Activate実行されない状況と、それがDoEventsで直る例を示しただけ
マウスクリックで前面にってのは、それがActivateを発生させると勘違いしてると思ってる
Excel VBA 質問スレ Part35
127 :デフォルトの名無しさん[sage]:2014/11/12(水) 18:43:26.08 ID:44wGY+45
>>125
フォームとワークシートの切り替えをVBAだけで検知するのは無理じゃないかな
切り替えただけでは何も起こってないと考えて
その次の操作をとらえる方向で考えるしかないんじゃない


※このページは、『2ちゃんねる』の書き込みを基に自動生成したものです。オリジナルはリンク先の2ちゃんねるの書き込みです。
※このサイトでオリジナルの書き込みについては対応できません。
※何か問題のある場合はメールをしてください。対応します。