Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


72611 / 76732 ←次へ | 前へ→

【8604】Re:OSではなく、Excelのバージョン
回答  角田 WEB  - 03/10/26(日) 11:16 -

引用なし
パスワード
   こんにちは。
>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]としてまとめておきます。
0 hits

【8602】ユーザーフォームのActivateイベントについて TATSU 03/10/26(日) 0:42 発言
【8604】Re:OSではなく、Excelのバージョン 角田 03/10/26(日) 11:16 回答
【8607】Re:OSではなく、Excelのバージョン 角田 03/10/26(日) 14:57 発言
【8609】Re:OSではなく、Excelのバージョン TATSU 03/10/26(日) 23:10 お礼

72611 / 76732 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free