|
>Activateイベントでは、可能でも Initializeでは不可なことって
>他にもいくつかあったはずですよ、今は 思い出せませんが・・・。
思い出した事例
ユーザーフォーム(UserForm1)にテキストボックスを二つ(TextBox1、TextBox2)
配置してください。
UserForm1を表示させる際に 条件によって フォーカスするテキストボックスを変えたい場合を想定します。
事例では、時刻の秒単位が30秒より大きかった場合、TextBox2にフォーカスする
という仕様です。
尚、表示は モードレスで表示するとします。
1
UserForm1のモジュールに
Private Sub UserForm_Initialize()
If Second(Now()) > 30 Then TextBox2.SetFocus
End Sub
標準モジュールに
Sub test1()
UserForm1.Show vbModeless
End Sub
2
UserForm1のモジュールに
Private Sub UserForm_Activate()
If Second(Now()) > 30 Then TextBox2.SetFocus
End Sub
標準モジュールに
Sub test2()
UserForm1.Show vbModeless
End Sub
1では、UserForm1の表示時に Textbox2にフォーカスをあてることが出来ませんが、
2では 可能になっています。
Initailizeでうまくいかないときに Activateで試してみる
こんな鉄則(昔、算数の参考書によくありましたね こういうの)を
頭に入れておくと よさそうですよね
|
|