UserFormコードオブジェクトの代わりにModule
でUserForm_Initialize()
を呼び出すにはどうすればよいですか?
モジュールから:
_UserFormName.UserForm_Initialize
_
ユーザーフォームで、次のようにサブを更新することを確認してください:
Public Sub UserForm_Initialize()
なので、フォームの外部から呼び出すことができます。
または、ユーザーフォームが読み込まれていない場合:
_UserFormName.Show
_はフォームをロードするため、最終的に_UserForm_Initialize
_を呼び出すことになります。
IMHOメソッドserForm_Initializeは非公開のままにする必要がありますユーザーフォームのInitializeイベントのイベントハンドラであるためです。
このイベントハンドラは、ユーザーフォームの新しいインスタンスが作成されたのときに呼び出されます。このハンドラーでも、uはUserForm1クラスのプライベートメンバーを初期化できます。
例:
標準モジュールコード:
Option Explicit
Public Sub Main()
Dim myUserForm As UserForm1
Set myUserForm = New UserForm1
myUserForm.Show
End Sub
ユーザーフォームコード:
Option Explicit
Private m_initializationDate As Date
Private Sub UserForm_Initialize()
m_initializationDate = VBA.DateTime.Date
MsgBox "Hi from UserForm_Initialize event handler.", vbInformation
End Sub
解決策結局のところ、私はなんとか問題を解決することができました。
モジュール内:UserForms(Name).Userform_Initialize
このメソッドは、現在のユーザーフォームを動的に初期化するのに最適です。