- 421 名前:デフォルトの名無しさん mailto:sage [2011/12/24(土) 05:56:28.60 ]
- >>412
Loadは命令。Initialize、Activateはその結果実行されるプロシージャ(イベント) Initializeはそのフォーム(のインスタンス)で1回しか起きないが、Activateは何回でも起きる(可能性がある) Unloadも命令。Terminateはその結果起きるイベント >>415 どうせならもうちょっと正確に書け LoadとUnloadはメソッドじゃない。ステートメントだ オブジェクト(フォーム)に定義されている命令ではなく、VBA言語に定義されている命令 LoadでInitializeイベントが起きるのも、ShowでActivateイベントが起きるのも結果に過ぎないぞ ShowしなくてもActivateイベントは(そういう状況になれば)起こるし、HideしなくてもDeactivateイベントも起こる こっから先は気にしなくてもいいかもしれんが、実験すると Loadする前にインスタンス生成した段階でInitializeイベントは起こる まあこれは解る Unloadするとその時点でTerminateイベントが起こる どうもインスタンスへの参照が無効になるっぽい。これはちょっと嫌な仕様だ Unloadしないでインスタンスへの参照を削除した場合、Terminateイベントが起こってないかもしれん デストラクタはあてにするなって事か とりあえずLoadとUnloadメソッドは忘れて、Terminateイベントは無いものとして扱うのがいいんじゃないかな ついでに実験中に気付いたこと UserForm1.Show vbModeless MsgBox "表示しました" このコード走らすと初回表示のActivateイベントが発生しなくなる これってバグじゃねえかと
|

|