Doing something wrong on Yes or No ?
Private Sub Workbook_BeforeClose(Cancel As Boolean)

    On Error Resume Next
    With GetObject("", "Outlook.Application").GetNamespace("MAPI").GetDefaultFolder(olFolderOutbox)
        ReDim Data(.Items.Count + 1, 2)
        For i = 1 To .Items.Count + 1
            Data(i - 1, 0) = .Items(i).SenderEmailAddress
            Data(i - 1, 1) = .Items(i).Subject
        Next
    End With
    If UBound(Data) > 1 Then
        MsgBox "There's still some unsent mail in OutBox !"
Cancel= vbYesNo + vbQuestion, "Close Outlook") = vbYes Then Outlook.Quit
       ' Cancel = True
    End If

End Sub