Функция MsgBox

Wend

ОБРАТИТЕ ВНИМАНИЕ: повторное использование функции Dir без аргументов возвращает имя следующего файла из папки, адрес которой был задан до этого (Dir(Path)).

3. Если первую строку предыдущего кода записать в виде

Path = "C:\St\*.xls",

то получим список Excel-файлов.

4. Следующий код проверяет наличие папки и выдает соответствующее сообщение:

Path = "C:\St"

Папка = Dir(Path, vbDirectory)

'возвращает имя папки ("St", если она _
существует, и пусто – в противном случае)

If Папка <> "" Then MsgBox "Папка существует!" _

Else MsgBox "Папка не существует!"

В наших примерах мы не раз использовали для вывода сообщений функцию MsgBox. Рассмотрим её подробнее.

Функция MsgBox выводит на экран диалоговое окно с сообщением и кнопками, а затем возвращает значение типа Integer, указывающее, какую кнопку нажал пользователь.

Синтаксис:

MsgBox (prompt [, buttons ] [, title ] [, helpfile, context ])

Синтаксис функции MsgBox содержит следующие именованные аргументы:

Аргумент Описание
prompt Сообщение в диалоговом окне. Может состоять из нескольких строк. Для разделения строк можно использовать символ возврата каретки (Chr(13)), перевода строки (Chr(10)) или комбинацию этих символов (Chr(13) & Chr(10))
buttons Числовое выражение, представляющее собой СУММУ значений, которые указывают число и тип отображаемых кнопок, тип используемого значка, основную кнопку и модальность окна сообщения. Значение по умолчанию равно 0 (отображается только кнопка ОК)
title Заголовок диалогового окна
helpfile Имя файла, содержащего справочные сведения. Если этот аргумент указан, необходимо указать также аргумент context
context Номер соответствующего раздела справочной системы. Указывается вместе с аргументом helpfile

Допустимые значения аргумента buttons:

Константа Значение Описание
vbOKOnly   Отображается только кнопкаOK
vbOKCancel   Отображаются кнопки OKиОтмена(Cancel)
vbAbortRetryIgnore   Отображаются кнопки Прервать (Abort), Повторить(Retry) и Пропустить(Ignore)
vbYesNoCancel   Отображаются кнопки Да(Yes), Нет (No) и Отмена(Cancel)
vbYesNo   Отображаются кнопки Да (Yes) и Нет (No)
vbRetryCancel   Отображаются кнопки Повторить (Retry) и Отмена(Cancel).
vbCritical   В окне сообщения отображается значок "Критическое сообщение"
vbQuestion   В окне сообщения отображается вопросительный знак
vbExclamation   В окне сообщения отображается восклицательный знак
vbInformation   В окне сообщения отображается знак "Информация"
vbDefaultButton1   Основной является первая кнопка
vbDefaultButton2   Основной является вторая кнопка
vbDefaultButton3   Основной является третья кнопка
vbDefaultButton4   Основной является четвертая кнопка
vbApplicationModal   Модальное окно на уровне приложения: чтобы продолжить работу с текущим приложением, необходимо ответить на данное сообщение
VbSystemModal   Модальное окно на уровне системы: все приложения будут недоступны до тех пор, пока пользователь не ответит на данное сообщение

Первая группа значений (0–5) указывает число и тип кнопок, отображаемых в окне диалога.

Вторая группа (16, 32, 48, 64) задает тип используемого значка.

Третья группа (0, 256, 512) определяет кнопку, которая является основной, а четвертая (0, 4096) – модальность окна сообщения. При определении значения аргумента buttons следует суммировать не более одного значения из каждой группы.

Возвращаемые значения при нажатии кнопки:

Константа Значение Нажатая кнопка
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


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: