|
こんにちは。
>OSにWindowsXPHome
>EXCEL2000のVBAで、
>フォームBが閉じたときにActivateイベントが実行されません。
>Windows2000では実行されるのですが
OSではなく、エクセルのバージョンによる違いです。
おそらく、
Win2000‥‥‥Excel2000(SR無し)
WinXP ‥‥‥Excel2000(SR1〜SP3)
ではないですか?
UserForm1表示→UserForm1からUserForm2を表示
→UserForm2を閉じてUserForm1へ戻る
で『UserForm1へ戻った時』に[Activate]イベントが発生する
バージョンと発生しないバージョンが有ります。
・Excel97(SR無し〜SR2)‥‥‥ 発生する
・Excel2000(SR無し) ‥‥‥ 発生する
・Excel2000(SR1〜SP3) ‥‥‥ 発生しない
・Excel2002 ‥‥‥ 発生しない
Win2000の方もエクセルにパッチ(SR1〜SP3)を掛けて、WinXP側と
同じ条件にした方が良いでしょうね。
なお、UserForm2の代わりに、MsgBox(InputBox)を表示した後には
いずれのバージョンでも[Activate]は発生しません。
補)Excel2000(SR1)〜でも、
UserForm1 上に【有効なコントロール】がひとつも無い
場合では、このタイミングでActivateが発生します。
「有効なコントロールが無い」とは
・UserForm1 上に入力系コントロールが全く無い
・UserForm1 上の入力系コントロールが全て
[TabStop=False]もしくは[Enabled=False]
になっている
の何れかです。
PS:近日中に、この件は私のHPで[Tips]としてまとめておきます。
|
|