Применение диалоговых окон других типов
Существует еще два типа встроенных диалоговых окон: GetOpenFilename и GetSaveAsFilename. Эти окна не открывают файл и не сохраняют его, а только позволяют указать его имя и путь. Команды, создающие такие диалоговые окна, являются не операторами Visual Basic, а методами Application.
Операторы, создающие эти два типа диалоговых окон, имеют следующий синтаксис:
theFilename=Application.GetOpenFilename (файловый_фильтр, индекс_фильтра, заголовок)
theFilename=Application.GetSaveAsFilename (начальное_имя_файла, _файловый фильтр, индекс_фильтра, заголовок)
Оба метода применяются к объекту Application и возвращают имя файла и путь, выбранные пользователем. Аргумент файловый_фильтр определяет, какие файловые фильтры перечисляются в выпадающем списке File Type диалогового окна. Всписке файлов диалогового окна появляются только те файлы, которые совпали с выбранным файловым фильтром. Файловый фильтр состоит из двух частей – текста и фильтра. Текст отображается в выпадающем списке File Type; а фильтр используется для выбора файлов из списка.
Аргумент индекс_фильтра является целым числом, задающим в выпадающем списке File Type файловый фильтр поумолчанию. Аргумент заголовок аналогичен используемому для функции InputBox(). Аргумент начальное_имя_файла определяет начальное , заданное по умолчанию, имя файла, которое помещают в окно редактирования текста.
Диалоговые окна приложения
Программы на Visual Basic могут вызывать все диалоговые окна, существующие в Excel. Однако эти диалоговые окна действуют не так, как описанные выше, и возвращают программе на Visual Basic без изменений какой-либо таблицы или ячейки. Если Вы вызываете диалоговое окно Excel, то оно не возвращает значения программе Visual Basic, а осуществляет свои нормальные функции.
Предуприждение:
В связи с тем, что диалоговые окна приложения применяются к текущему отображаемому объекту, не отображайте диалоговое окно вне контекста: так как это приведет к ошибке выполнения.
Для вызова диалогового окна приложения пользуйтесь набором Dialogs объекта Application. Для поиска доступных диалоговых окон и констант воспользуйтесь Object Browser, выбрав объект Constants из библиотеки Excel (нужные константы начинаются с xlDialog).
Следующая процедура отображает диалоговое окно FormatNumber:
Sub TestDialog2()
Application.Dialogs(xlDialogFormatNumber).Show
End Sub
Чтобы выполнить эту процедуру, запишите ее на странице модуля, переключитесь на таблицу, укажите директиву Tools/Macro, выберите процедуру TestDialog2(), затем нажмите кнопку Run.
Заключение
Диалоговые окна являются основным средством организации обмена небольшими объемами данных между пользователями и выполняющейся программой. Две функции MsgBox() и InputBox() создают встроенные диалоговые окна, позволяющие управлять большинством простейших обменов данными. Методы GetOpenFilename() и GetSaveAsFilename() создают диалоговые окна, позволяющие создать имя файла, подлежащего открытию или сохранению. Кроме того, допустимыми являются диалоговые окна пользователя.
Кроме встроенных диалоговых окон Visual Basic, можно отобразить любое из диалоговых окон программы Excel для осуществления их нормальных функций.
Диалоговые окна пользователя
Добавление новой страницы диалога.
· Чтобы открыть новую страницу диалога нужно на названии открытого листа щелкнуть правой кнопкой мыши и в контекстном меню открыть команду «Добавить», после этого появится окно, в котором выбрать «Окно диалога».
Помещение объектов в бланк.
· Чтобы разместить нужный объект в диалоговом окне нужно в пиктографическом меню «Формы» выбрать объект, переместить его в бланк, щелкнув левой кнопкой мыши, растянуть прямоугольник.
· Чтобы переместить объект нужно выбрать его и перетащить за край на нужное место.
·
![]() |
Чтобы видоизменить объект надо выбрать его (щелкнуть мышкой) и установить нужный размер с помощью маленьких черных прямоугольников, которые появляются вокруг выбранного объекта.
Примеры всех объектов, которые можно подключить к бланку, приведены: