MsgBox
возвращает Enum(eration)
, называемое MsgBoxResult
, которое по сути является ничем иным, как числовыми значениями с меткой. 6 и 7 в этом случае являются членами этого перечисления, которые сопоставлены с ответами Yes
и No
.
Следует по возможности избегать использования так называемых «магических чисел» вместо констант или перечислений.
По сути, вы можете переписать код так:
Dim message As Integer
message = MsgBox("Click Yes to Proceed, No to stop", vbYesNoCancel, "Login")
If message = MsgBoxResult.Yes Then
Range("A1").Value = "You may proceed"
ActiveWorkbook.Activate
ElseIf message = MsgBoxResult.No Then
ActiveWorkbook.Close
End If
Возможно, Enum называется vbMsgBoxResult или что-то в этом роде ... У меня нет Office, чтобы это проверить, только Visual Studio.
Пока мы на этом ... это может быть легче понять:
Select Case MsgBox("Click Yes to Proceed, No to stop", vbYesNoCancel, "Login")
Case MsgBoxResult.Yes
Range("A1").Value = "You may proceed"
ActiveWorkbook.Activate
Case MsgBoxResult.No
ActiveWorkbook.Close
Case MsgBoxResult.Cancel
' he clicked cancel '
End Select