1

マクロを実行してPrivate Sub Workbook_BeforeClose(Cancel As Boolean) いますが、ユーザーが[キャンセル] ボタンをクリックしてもマクロは実行されません。


私は次のコード行を続けました

Private Sub Workbook_BeforeClose(Cancel As Boolean)
If Cancel = True Then
    MsgBox "You clicked on Cancel"
ElseIf Cancel = False Then
    Call SDA
End If

End Subしかし、キャンセル
ボタンを押すたびに、MessageBox.Any ヘルプが表示されません。ここに画像の説明を入力

4

1 に答える 1

7

これを試してください:

Option Explicit

Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim Msg As String
Dim ireply As Integer
    If Not Me.Saved Then
        Msg = "Do you want to Save this book? "
        ireply = MsgBox(Msg, vbQuestion + vbYesNoCancel)
        Select Case ireply
            Case vbYes
                Me.Save
                Call SDA 
            Case vbNo
                Me.Saved = True
            Case vbCancel
                Cancel = True
                MsgBox "Cancelling...workbook close event!"
                Exit Sub
          End Select
    End If        
End Sub
  • 出力ダイアログ:

ここに画像の説明を入力

メッセージボックス キャンセル イベント ラップの通常の構造は次のとおりです。

'--Display MessageBox
    Dim intMsg as integer
    intMsg = MsgBox(strPrompt, vbYesNo, strTitle) 
    '--Check pressed button
    If iRet = vbNo Then
        MsgBox "NO!"
    Else
        MsgBox "Yes!"
    End If
于 2013-01-18T12:13:39.930 に答える