- 子フォームでイベントを宣言し、特定の瞬間に発生させます。
Public Event clickOnChild(ByVal inputText As String)
RaiseEvent clickOnChild(Me.TextBox1.Value)
- カスタム クラス モジュール、ワークシート クラス モジュール、またはその他のユーザー フォームで、イベントをキャッチできます。ただし、WithEvents 変数はオブジェクト モジュールでのみ有効であるため、標準モジュールでイベントをキャッチすることはできません。たとえば、他のユーザー フォームでイベントをキャッチするには、childUserForm 型の WithEvents 変数を宣言し、イベントがキャッチされて処理されるイベント ハンドラを追加します。
Private WithEvents childForm As childUserForm
Private Sub childForm_clickOnChild (ByVal inputText As String)
完全な例:
子ユーザー フォーム:
Option Explicit
Public Event clickOnChild(ByVal inputText As String)
Private Sub CommandButton1_Click()
RaiseEvent clickOnChild(Me.TextBox1.Value)
End Sub
親ユーザー フォーム:
Option Explicit
Private WithEvents childForm As childUserForm
Private Sub CommandButton1_Click()
childForm.Show
End Sub
Private Sub childForm_clickOnChild(ByVal inputText As String)
MsgBox "Input in child form was: " & inputText
End Sub
Private Sub UserForm_Initialize()
Set childForm = New childUserForm
End Sub