На этом шаге мы рассмотрим особенности создания диалоговых окон.
Подпрограмма Вопрос (рисунок 1) предназначена для создания пользовательского диалогового окна с вопросом: сформировать ли платежный календарь (рисунок 4).
Рис.1. Подпрограммы ФормулыВводаБюджета и Вопрос
На 395 шаге было рассмотрено создание однокнопочного диалогового окна на основании функции MsgBox, которое дополнительно отображало время выполнения подпрограммы (рисунок 2).
Рис.2. Созданное диалоговое окно Модель прогнозирования движения денежных потоков для отображения времени расчета модели и показывающее окончание проведения расчетов
Рассмотрим создание других пользовательских диалоговых окон на основании этой же функции.
Подпрограмма ПереносДанныхДенежныеПотоки формирует двухкнопочное пользовательское диалоговое окно (рисунок 3) с вопросом: Открывать файл ДенежныеПотокиБюджет?.
Рис.3. Пользовательское диалоговое окно с вопросом об открытии файла ДенежныеПотокиБюджет
Это может быть удобно, если пользователь передумает открывать файл и тогда нажмет на кнопку Нет.
Задача подпрограммы Вопрос - создание двухкнопочного пользовательского диалогового окна (рисунок 4) с вопросом: Создать платежный календарь?.
Рис.4. Пользовательское диалоговое окно с вопросом о создании платежного календаря
При нажатии на кнопку Да процедура переходит к выполнению подпрограммы СозданиеПлатежногоКалендаря (рассмотрен в следующих шагах). При нажатии на кнопку Нет подпрограмма ПереносДанныхДенежныеПотоки завершает свою работу.
Для отображения в диалоговом окне двух кнопок в отличие от однокнопочного окна (рисунок 2), во втором аргументе функции MsgBox (buttons) указана цифра 4 вместо 0. Если необходимо будет создавать другие диалоговые окна, то в этом поможет таблица с перечнем аргументов для различного отображения режимов кнопок.
Текстовое обозначение (константа) | Числовое значение | Описание |
---|---|---|
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) определяет кнопку, которая является основной.
На следующем шаге мы рассмотрим просмотр данных.