- •Вбудовані діалогові вікна
- •Застосування функції Input Box
- •Створення простого вікна повідомлення
- •Додавання командних кнопок у вікно повідомлення для створення діалогового вікна
- •Набуття значень від функції MsgBox
- •Застосування діалогових вікон інших типів
- •Виклик діалогових вікон додатка
- •Малюнок 1 Діалогове вікно Excel відображується за допомогою методу Show
-
Набуття значень від функції MsgBox
Діалогове вікно не містить варіантів вибору, не дуже зручно використовувати. А щоб, яку командну кнопку натискував користувач, потрібно використовувати функціональну форму MsgBox() і перевірити повернене функцією значення. Можливі значення, що повертаються функцією, і відповідні ним константи Visual Basic приведені в таблиці. 2.
Таблиця 2. Значення, що повертається функцією MsgBoxO
-
Код
Константа
Командна кнопка
vbOK
OK
vbCancel
Cancel
vbAbort
Abort
vbRetry
Retry
vblgnore
Ignore
vbYes
Yes
vbNo
No
-
Так, щоб використовувати в процедурі діалогове вікно, описане в попередньому Розділі, можна створити наступну процедуру:
Sub MakeDialog1()
Dim theCode As Integer, theReply As Integer
theCode = vbYesNo + vbDefaultButton2 + vbExclanation + vbAppliсationModa1
theReply = MsgBox(prompt:="Вы дійсно хочете це зробити?",_
Buttons:=theCode)
Select Case theReply
Case vbYes
'Він дійсно хоче це зробити, доведеться продовжити.
'Блок коду для відповіді Yes.
Debug.Print "Та"
Case vbNo
'Блок коду для відповіді No.
Debug.Print "Ні"
End Select
End Sub
Ця процедура обчислює код командних кнопок і піктограм діалогового вікна, відображує це діалогове вікно і зберігає повернене значення в змінній theReply. Потім застосовується структура Select Case, що вибирає блок коду, який відповідає поверненому значенню. Запустите цю процедуру на панелі Immediate; вікна Debug — і вона надрукує "Та чи ні" залежно від того, яку i командну кнопку ви натискуватимете для закриття діалогового вікна.
-
Застосування діалогових вікон інших типів
У Visual Basic існують ще два типи вбудованих діалогових вікон: GetOpenFilename і GetSaveAsFilename. Ці вікна не відкривають файл і не зберігають його. Вони тільки дозволяють вказати його ім'я і шлях. Команди, що створюють такі діалогові вікна, є не операторами Visual Basic, а методами об'єкту Application.
Оператори, що створюють цих двох типів діалогових вікон, мають наступний синтаксис:
theFilename = Application.GetOpenFilename(файловый_фильтр, индекс_фильтра, заголовок)
theFilename = Application.SaveAsfilename(початкове ім'я файлу, файловий фільтр, індекс фільтру, заголовок)
Обидва методи застосовуються до об'єкту Application і повертають ім'я файлу і шлях, вибрані користувачем. Діалогові вікна, аналогічні цим, відображуються, коли використовуються директиви Excel File/Open і File/Save As. У цих діалогових вікнах є командні кнопки Open або Save і Cancel. Якщо користувач натискуватиме командну кнопку Cancel, методи повернуть значення False.
Аргумент файловый_фильтр визначає, які файлові фільтри перераховуються у випадному списку File Type діалогового вікна. У списку файлів діалогового вікна з'являються тільки ті файли, які збіглися з вибраним файловим фільтром. Файловий фільтр складається з двох часток —текста і фільтру. Текст відображується у випадному списку File Type, а фільтр використовується для вибору файлів із списку файлів.
Як приклад розгледимо аргумент:
Всі файли (*.*), *.*
Текст «Всі файли (*.*)» відображуватиметься у випадному списку File Type, а *.* є дійсним фільтром, що вибирає і відображує список всіх файлів поточної директорії.
Розгледимо інший приклад файлового фільтру:
Всі файли (*.*), *.*, Робочі теки Excel (*.xls) *.xls
Цей фільтр відображує два елементи у випадному списку File Type: "Всі файли (*.*)" і "Робочі теки Excel (*.XLS)".
Аргумент индекс_фильтра є цілим числом, задаючим у випадному списку File Type файловий фільтр по умолчанию- Аргумент заголовок аналогічний використовуваному для функції InputBoxO. Аргумент начальное_имя_файла визначає початкове, задане за умовчанням ім'я файлу, яке поміщають у вікно редагування тексту.