Шаг 455.
VBA в MSExcel. Бюджетирование... . Создание диалоговых окон для выбора направления выполнения подпрограммы

    На этом шаге мы рассмотрим особенности создания диалоговых окон.

    Подпрограмма Вопрос (рисунок 1) предназначена для создания пользовательского диалогового окна с вопросом: сформировать ли платежный календарь (рисунок 4).


Рис.1. Подпрограммы ФормулыВводаБюджета и Вопрос

    На 395 шаге было рассмотрено создание однокнопочного диалогового окна на основании функции MsgBox, которое дополнительно отображало время выполнения подпрограммы (рисунок 2).


Рис.2. Созданное диалоговое окно Модель прогнозирования движения денежных потоков для отображения времени расчета модели и показывающее окончание проведения расчетов

    Рассмотрим создание других пользовательских диалоговых окон на основании этой же функции.

    Подпрограмма ПереносДанныхДенежныеПотоки формирует двухкнопочное пользовательское диалоговое окно (рисунок 3) с вопросом: Открывать файл ДенежныеПотокиБюджет?.


Рис.3. Пользовательское диалоговое окно с вопросом об открытии файла ДенежныеПотокиБюджет

    Это может быть удобно, если пользователь передумает открывать файл и тогда нажмет на кнопку Нет.

    Задача подпрограммы Вопрос - создание двухкнопочного пользовательского диалогового окна (рисунок 4) с вопросом: Создать платежный календарь?.


Рис.4. Пользовательское диалоговое окно с вопросом о создании платежного календаря

    При нажатии на кнопку Да процедура переходит к выполнению подпрограммы СозданиеПлатежногоКалендаря (рассмотрен в следующих шагах). При нажатии на кнопку Нет подпрограмма ПереносДанныхДенежныеПотоки завершает свою работу.

    Для отображения в диалоговом окне двух кнопок в отличие от однокнопочного окна (рисунок 2), во втором аргументе функции MsgBox (buttons) указана цифра 4 вместо 0. Если необходимо будет создавать другие диалоговые окна, то в этом поможет таблица с перечнем аргументов для различного отображения режимов кнопок.

Таблица 1. Допустимые значения аргумента buttons
Текстовое обозначение (константа) Числовое значение Описание
vbOKOnly 0 Отображается только кнопка OK
VbOKCancel 1 Отображаются кнопки OK и Отмена (Cancel)
VbAbortRetryIgnore 2 Отображаются кнопки Прервать (Abort), Повторить (Retry) и Пропустить (Ignore)
VbYesNoCancel 3 Отображаются кнопки Да (Yes), Нет (No) и Отмена (Cancel)
VbYesNo 4 Отображаются кнопки Да (Yes) и Нет (No)
VbRetryCancel 5 Отображаются кнопки Повторить (Retry) и Отмена (Cancel)
VbCritical 16 Используется значок "Критическое сообщение"
VbQuestion 32 Используется значок "Предупреждающий запрос"
VbExclamation 48 Используется значок "Предупреждение"
VbInformation 64 Используется значок "Информационное сообщение"
VbDefaultButton1 0 Основной является первая кнопка
VbDefaultButton2 256 Основной является вторая кнопка
VbDefaultButton3 512 Основной является третья кнопка
VbDefaultButton4 768 Основной является четвертая кнопка

    Первая группа значений (0-5) указывает число и тип кнопок, отображаемых в окне диалога, вторая группа (16, 32, 48, 64) задает тип используемого значка, третья (0, 256, 512) определяет кнопку, которая является основной.

    На следующем шаге мы рассмотрим просмотр данных.




Предыдущий шаг Содержание Следующий шаг