| 
    
     |  | こんにちは。 >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]としてまとめておきます。
 
 |  |