これでコード内にユーザーフォームを開いた際に実行するイベントコード『Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)』が作成されます。
イベントコードが作成される
QueryCloseのイベントコードが作成されました。
イベントコードは手入力しなくてもVBE画面のリストから作成できます。
ユーザーフォームを閉じるイベントコードは長いですが覚える必要はありません。
閉じるときのイベント
ユーザーフォームを閉じる際に実行するイベントコードを実行してみます。
『ユーザーフォームの中のコード』に記載します。
'ユーザーフォームを閉じる際に実行
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
MsgBox "ユーザーフォームを閉じます"
End Sub
では『×』ボタンでユーザーフォームを閉じてみます。
閉じる際のイベントコードを実行
メッセージが表示されました。
メッセージをOKで消すとユーザーフォームが閉じられます。
イベントコード実行後に閉じられる
ユーザーフォームが閉じられました。
ユーザーフォームを閉じる際にVBAコードが実行されたことがわかります。
『×』で閉じられないようにする
少し応用でユーザーフォームを『×』で閉じられないようにするVBAコードを紹介します。
ユーザーフォームを閉じる際に実行するイベントコードを応用するとできます。
'ユーザーフォームを閉じる際に実行
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
'『×』ボタンが押された場合
If CloseMode = 0 Then
MsgBox "ボタンで閉じてください"
'閉じる操作をキャンセルする
Cancel = True
End If
End Sub
Private Sub CommandButton1_Click()
'何かしらのコードを実行させるとか'閉じる
Unload Me
End Sub