6

UserForm コード オブジェクトUserForm_Initialize()の代わりに を呼び出すにはどうすればよいですか?Module

4

3 に答える 3

12

モジュールから:

UserFormName.UserForm_Initialize

ユーザーフォームで、次のようにサブを更新することを確認してください。

Public Sub UserForm_Initialize()そのため、フォームの外から呼び出すことができます。

または、ユーザーフォームが読み込まれていない場合:

UserFormName.ShowUserForm_Initializeフォームをロードするため、呼び出しが終了します。

于 2012-12-20T03:29:06.777 に答える
3

IMHOメソッドUserForm_Initialize は、UserFormの Initialize イベントのイベント ハンドラであるため、プライベートのままにする必要があります。

このイベント ハンドラは、UserForm の新しいインスタンスが作成されたときに呼び出されます。このイベント ハンドラーでは、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
于 2012-12-20T06:06:25.140 に答える
1

解決策 長い間、問題を解決することができました。

モジュール内: UserForms(Name).Userform_Initialize

このメソッドは、現在のユーザー フォームを動的に初期化するのに最適です。

于 2012-12-21T07:41:15.990 に答える