|
▼ミーナ さん:
>テキストボックスの内容を残したい場合などに使えばいいのですね。
↑ これは、誤解するといけないので、一応解説を加えておきますね。
(ちょっと、通りかかったもので…)
Me.Hide でテキストボックスの内容を保持しておけるのは、
『その UserForm が開かれている間だけ』…です。
つまり… Me.Hide をした後で、そのシートを終了してしまうと、
テキストボックスの内容を、シート上のセルにでも転記しておかない限り、
テキストボックスの内容を保持しておく事はできませんので、注意して下さい。
言い方を変えると…
Me.Hide だと、 UserForm が、『見た目上からは消えます』が、
『メモリー上には残っていて、EXCEL からは開かれていると判断される状態』
のままになります。UserForm がメモリー上に留まったままですので、
次に表示される時は速いですし、オブジェクトの値も保持されています。
『Unload Me』だと、UserForm が、メモリー上からも消されて、
『EXCEL からの判断でも閉じられたと判断される状態』になります。
また、UserForm は『Me.Hide』するだけでは、メモリーを消費し続けますし、
多くの UserForm を Me.Hide し続けると、
EXCEL が急にハングアップしたりする原因にもなりますので、
その UserForm が必要無くなった時点で、きちんと『Unload Me』をする様に
して下さい。
ちなみに私は…
UserForm1.Hide
Unload UserForm1
↑ …のセットの様に、明示的に UserForm を指定して閉じる書き方が好きです。
Me.Hide
Unload Me
↑ …のセットも、意味的には同じですので、好みの方を使用して下さい。
(もし、ここを理解されていた場合には、済みませんです (笑))
|
|