Функция MsgBox в Excel VBA может возвращать результат, в то время как простой MsgBox не может.

Ситуация:

MsgBox Function Example

Поместите командную кнопку на листе и добавьте строки следующего кода:

  1. Во-первых, мы объявляем переменную ответ типа Integer.

Dim answer As Integer
  1. Мы используем функцию MsgBox, чтобы инициализировать переменную ответ с введенной пользователем.

Функция MsgBox, при использовании круглых скобок, имеет три аргумента. Первая часть используется для сообщения в окне сообщения. Используйте вторую часть, чтобы указать, какие кнопки и значки, которые Вы хотите, чтобы появиться в окне сообщения. Третья часть отображается в строке заголовка окна сообщения.

answer = MsgBox("Are you sure you want to empty the sheet?", vbYesNo + vbQuestion, "Empty Sheet")

Примечание: Наведите курсор на vbYesNo в редакторе Visual Basic и нажмите F1, чтобы увидеть другие кнопки и значки, которые Вы можете использовать. Вместо постоянных vbYesNo и vbQuestion, вы можете также использовать соответствующие значения 4 и 32.

  1. Если пользователь нажимает на кнопку Да, Excel VBA опустошает лист. Если пользователь нажимает кнопку Нет, ничего не происходит. Добавьте следующие строки кода для достижения этой цели.

If answer = vbYes Then

Cells.ClearContents

Else

'do nothing

End If
  1. Нажмите кнопку управления на листе.

  2. Нажмите кнопку Да.

Msgbox Function in Excel VBA

Результат:

MsgBox Function Result