Константа | Значение | Нажатая кнопка |
vbOK | OK | |
vbCancel | Отмена (Cancel) | |
vbAbort | Прервать (Abort) | |
vbRetry | Повторить (Retry) | |
vbIgnore | Пропустить (Ignore) | |
vbYes | Да (Yes) | |
vbNo | Нет (No) |
Примеры:
1. Команда: MsgBox "Случайные числа разыграны!"
выводит на экран диалоговое окно с одной кнопкой ОК и стандартным заголовком Excel:
2. Это же окно с информационным значком и другим заголовком:
MsgBox "Случайные числа разыграны!", _
vbDefaultButton1 + vbInformation, "Случайные числа"
3. Фрагмент кода с диалогом о замене существующего файла:
1) | Path = "C:\St\Случайные числа.xls" |
2) | Filename = Dir(Path) |
3) | If Filename <> "" Then |
4) | 'В переменной Сообщение задается структура диалогового окна: |
5) | Сообщение = vbYesNo + vbQuestion + vbDefaultButton1 |
6) | 'Выводит сообщение: |
7) | Кнопка = MsgBox(("Файл " & Filename & " уже существует. Заменить его?"), Сообщение) |
8) | Select Case Кнопка |
9) | Case vbYes |
10) | MsgBox "Нажата кнопка Да!" |
11) | Case vbNo |
12) | MsgBox "Нажата кнопка Нет!" |
13) | End Select |
14) | Else |
15) | MsgBox "Файл " & Filename & " не найден!" |
16) | End If |
Комментарии к программе:
ü 5-ую строку можно записать в следующем виде:
Сообщение = 4 + 32
По субъективному мнению автора эта запись нежелательна, т.к. она не информативна.
ü Аналогично можно было бы записать 9-ю и 11-ю строку (через возвращаемые значения):
Case 6
Case 7
Согласитесь – код совершенно не читабельный!
ü Вместо конструкции Select Case можно было бы воспользоваться управляющей структурой If-Then-Else. Тогда, вместо строк (8) – (13), запишется следующий код:
If Кнопка = vbYes Then
MsgBox "Нажата кнопка Да!"
Else
MsgBox "Нажата кнопка Нет!"
End If