Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
VB_1 Mетодичка-Exel_укр_2.doc
Скачиваний:
3
Добавлен:
17.09.2019
Размер:
1.43 Mб
Скачать

3. Вживання діалогових вікон інших типів

У Visual Basic існують ще два типи вбудованих діалогових вікон: GetOpenFilename і GetSaveAsFilename. Ці вікна не відкривають файл і не зберігають його. Вони лише дозволяють вказати його ім'я і дорогу. Команди, що створюють такі діалогові вікна, є не операторами Visual Basic, а методами об'єкту Application.

Оператори, що створюють ці два типи діалогових вікон, мають наступний синтаксис:

theFilename = Application.GetOpenFilename(файловий_фільтр, індекс_фільтру, заголовок)

theFilename = Application.GetSaveAsfilename(початкове_ім'я_файлу, файловий_фільтр, індекс_фільтру, заголовок)

Обидва методи застосовуються до об'єкту Application і повертають ім'я файлу і шлях до їх розташування, вибрані користувачем. Діалогові вікна, аналогічні цим, відображуються, коли використовуються директиви любого додатку File/Open і File/Save As. У цих діалогових вікнах є командні кнопки Open або Save і Cancel. Якщо користувач натискуватиме командну кнопку Cancel, методи повернуть значення False.

Аргумент файловий_фільтр визначає, які файлові фільтри перераховуються у випадаючому списку File Type діалогового вікна. У списку файлів діалогового вікна з'являються лише ті файли, які збіглися з вибраним файловим фільтром (шаблоном файлу). Кожен елемент списку файлового фільтру складається з двох частин — тексту і фільтру (шаблону файлів). Текст відображується у випадаючому списку File Type, а фільтр використовується для вибору файлів із вибраної папки.

Як приклад розглянемо один елемент списку: Всі файли (*.*), *.*

Текст «Всі файли (*.*)» відображатиметься у випадаючому списку File Type, а *.* є дійсним фільтром, що дозволяє відображати усі файли поточної директорії.

Розглянемо інший приклад файлового фільтру:

файловий_фільтр = "Всі файли (*.*), *.*, Робочі книги Excel (*.xls), *.xls, Документи Word (*.doc), *.doc"

Цей фільтр відображує три елементи у випадаючому списку File Type: "Всі файли (*.*)", "Робочі книги Excel (*.XLS)" і "Документи Word (*.doc)".

Аргумент індекс_фільтру є цілим числом, що задає у випадаючому списку File Type файловий фільтр по умовчанню, який вказує на його номер в списку. Індекс фільтру за наданим вище файловим фільтром може набувати значення 1, 2 або 3, так як в випадаючому списку файлового фільтру три елемента списку.

Наприклад:

індекс_фільтру = 2, то по умовченю в вікні папки будуть відображатися файли за шаблоном - *.xls, що розташований другим у випадаючому списку

індекс_фільтру = 3, то по умовченю в вікні папки будуть відображатися файли за шаблоном - *.doc

індекс_фільтр у= 1, то по умовченю в вікні папки будуть відображатися усі файли за шаблоном - *.*

Аргумент заголовок аналогічний, що для функції InputBox().

Аргумент початкове_ім'я_файлу визначає початкове, задане за умовчанням ім'я файлу, яке розташовують у полі редагування тексту.

Наприклад, пригадайте, при збережені файлу у Excel пропонується ім’я по умовчанню Книга1, Книга2, …., а у Word пропонується ім’я по умовчанню Документ1, Документ2, … .

4. Виклик діалогових вікон додатка

Програми на Visual Basic можуть викликати всі діалогові вікна, що існують в Excel чи інших додатках. Проте ці діалогові вікна діють не так, як описані вище і повертаючі значення програмі на Visual Basic без змін якої-небудь таблиці або клітини. Якщо викликаємо діалогове вікно Excel, то воно не повертає значення програмі на Visual Basic, а здійснює свої нормальні функції.

Наприклад, якщо виконати дії, задані в діалоговому вікні Формат клітин (Format) обкладинка Число (Number), для деяких вибраних елементів таблиці, то ці дії будуть застосовані до цих клітин і не повернуть жодного значення програмі на Visual Basic.

Для виклику діалогового вікна додатка потрібно застосувати набір Dialogs - об'єкту Application.

Application.Dialogs(число-індекс).метод

Набір Dialogs отримує як аргумент число-індекс (константа), що вибирає діалогове вікно, для відображення. Всі індекси відповідають певним константам додатку, що іменують вибране діалогове вікно. Всі ці константи для Excel починаються з xlDialog, потім слідує ім'я діалогового вікна. Наприклад, константою для діалогового вікна Формат клітини обкладинка Число (Format Number) є xlDialogFormatNumber. Для пошуку доступних діало­гових вікон і констант скористайтеся Object Browser, вибравши об'єкт Constants бібліотеки додатку (потрібні константи для Excel починаються з xlDialog).

Наступна процедура відображує діалогове вікно Формат клітини обкладинка Шрифт:

' Перевірка діалогу

' Відображує діалогове вікно Format Font

Sub TestDialog ()

Application.Dialogs(xlDialogFormatFont).Show

End Sub

Аби виконати цю процедуру, запишіть її на сторінці модуля, перемкнетеся на таблицю, виберіть клітину, вкажіть директиву Tools/Macro, виберіть процедуру TestDialog, потім натискуйте командну кнопку Run. В результаті виконання цієї процедури відображатиметься діалогове вікно, приведене на рисунку 8. Якщо ви забудете вибрати елемент таблиці перед запуском процедури, спроба відображення діалогового вікна приведе до помилки.

Рисунок 1. Діалогове вікно Excel відображується за допомогою методу Show

Приклад: Створить програму, що дозволяє вибрати з папки вашої групи ім’я файлу, відобразити запит на збереження його в клітині С5 поточного листа, від форматувати шрифт змінюючи, начертання, колір, розмір шрифту. (Підсумок по темі)

Sub FileName_Format()

опис зміної для отримання імені вибранного файлу

опис зміної для задання файлового фільтру

Dim F_Name As String, F_Filter As String

опис зміної для задання константи, що визначає аргумент Button для функції MsgBox()

опис зміної (константи), що отримує код вибранної кнопки у вікні функції MsgBox()

Dim Code_Button As Integer, Code As Integer

визначення списку файлового фільтру

F_Filter = "Всі файли (*.*), *.*, Робочі книги Excel (*.xls), *.xls, Документи Word (*.doc), *.doc"

отримання імені файлу з вибраної папки у вікні «File name» (рис.9)

F_Name = Application.GetOpenFilename(F_Filter, 2, "File name")

If F_Name = False Then ‘ перевірка на виподок вибору кнопки ОТМЕНА

MsgBox "Вибрано кнопку ОТМЕНА !!!" ‘ вікно повідомлення (рис.10)

Else

визначення константи Button у вікні функції MsgBox()

Code_Button = vbYesNo + vbDefaultButton2 + vbExclamation + vbAppliсationModal

Code = MsgBox("Зберегти знайдене ім'я файлу?", Code_Button) ‘ вікно запиту (рис.11)

Select Case Code ‘ перевірка на значення вибранної командної кнопки у вікні запиту

Case vbYes

'Блок для відповіді Да (Yes)

Range("C5").Value = F_Name ‘ запис вибраного імені файлу в клітину С5

Range("C5").Select ‘ вибір клітини С5

Application.Dialogs(xlDialogFormatFont).Show

виклик вікна для форматування шрифту у вибраній клітині (рис.12)

Case vbNo

'Блок для відповіді Нет (No)

MsgBox "Вибрано файл з іменем " & F_Name

надання вікна повідомлення з текстом назви виброного файлу (рис.13)

End Select

End If

End Sub

Результати роботи програми наведені на рисунках 9-13.

Рисунок 9.

Рисунок 10.

Рисунок 11.

Рисунок 12.

Рисунок 13.

Контрольні завдання по темі

1. Теоретичні питання

2. Тести

3. Практичні завдання

Створення діалогових вікон користувача

Хорошим інтерфейсом є таблиця, проте для створення призначеного для користувача програмного інтерфейсу в Visual Basic є можливість створення та застосовувати діалогові вікна користувача.

28. Відкриття нової сторінки діалогу

Можливості діалогових вікон, які були розглянуті раніше, до певної міри обмежені. Застосовувалися діалогові вікна для обміну одиничними елементами даних між програмою і користувачем. Часто потрібно передати більш за один елемент даних, особливо в тих випадках, коли програма приймає інформацію від користувача.

Відомо що зручний, зрозумілий інтерфейс для любої задачі є одною зголовних вимог створення програми. Для вирішення проблем такого роду застосовуються сторінки діалогу, що дозволяють створювати діалогові вікна користувача, або Форми VBА. Сторінка діалогу повністю відрізняється від всіх інших сторінок Excel. Вона є середовищем, що дозволяє змалювати діалогове вікно, розмістити в ньому командні кнопки, текст і поля редагування.

Для створення діалогового вікна спочатку відкрийте сторінку діалогу, використовуючи директиву контекстного меню листа Excel Добавить/Окно_диалога або директиву Сервіс ( Макрос/ Редактор VB → Вставка → User Forms. На рис. 1 зображена нова сторінка діалогу Excel.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]