Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

ИРВТ / Методичка

.pdf
Скачиваний:
13
Добавлен:
10.06.2015
Размер:
1.48 Mб
Скачать

11

Рис. 1.6. Создание всплывающих подсказок

Завершить выполнение работы, проверив функционирование созданных макросов, работоспособности гиперссылок. Показать результаты преподавателю.

* * *

Контрольные вопросы

1.Описать последовательность действий при создании автоматизированного оглавления.

2.Каким образом можно отформатировать разрозненные фрагменты тела документа?

3.Описать порядок записи автоматического макроса, например, если требуется определенные фрагменты текста отформатировать по ширине без абзацного отступа или выступа и поместить в рамку.

4.Назначение гиперссылок. Какими средствами Word реализуется гиперссылка а) внутри документа, б) на другие документы?

5.Каким образом можно создать всплывающие подсказки над отдельными фрагментами текста?

12

Практическая работа № 2

Разработка пользовательского интерфейса при работе с группой файлов в Word

Цель работы

Задача практической работы – расширить и закрепить навыки программирования на VBA в приложении к документу Word, научить разрабатывать простейший пользовательский интерфейс с использованием элементов управления и пользовательской формы.

Основой для работы служит созданный в Практической работе № 1 набор файлов. Для примера рассмотрим возможность построения самотестирования на основе шуточного электронного учебника: «Прикольная информатика». Суть тестирования заключается в следующем:

1.Создать форму, в которой с помощью кнопок и полей будут задаваться вопросы. Вопросы случайным образом выбираются из списка «Содержания».

2.В форме должны содержаться кнопки для выбора варианта ответа и «подсказки».

3.Справочной информацией служат файлы с разделенной по темам информацией из Практической работы №1.

I. Подготовка данных для работы с пользовательской Формой

1.Создаем новую папку, например, «Практическая работа № 2», куда копируем все файлы, созданные ранее. Главное - файл «Содержание» должен точно отражать наличие всех перечисленных в нем файлов – как по названию, так и по числу (Рис. 2.1).

2.Разработка формы для файла «Содержание».

Открываем файл «Содержание».

Используя вкладку Разработчик или нажимая клавиши Alt+F11, открываем окно редактора Visual Basic.

На Вкладке Insert создаем окно User Form. Перетаскивая на поле формы элементы с панели инструментов (Toolbox), создаем форму c пятью кнопками (CommandButton) и одним полем ввода (TextBox). Если панель инструментов исчезает из видимости, достаточно щелкнуть по полю формы – панель инструментов снова будет доступна для работы.

13

Рис. 2.1 Соотношение Содержания, количества и названия соответствующих ему файлов

Кнопки 3, 4, 5 помещаем на рамку (Frame) – т.е. сначала создаем рамку, а потом на нее наносим кнопки. (Рис. 2.2)

3. Используя окно свойств (Properties) для каждого элемента формы, делаем надписи (Caption), форматируем их, меняя размеры и шрифты (Font), расположение текста по кнопке с переносом слов в надписи (WordWrap = True).

Необходимо обратить внимание на разницу между свойством Name, которое стоит в первом поле окна свойств (Properties) и надписью (Caption) кнопки или какого-либо другого элемента панели инструментов. Свойство Name используется транслятором для отождествления данного объекта при его работе с кодом объекта. Свойство Caption автоматически наследует имя объекта, но пользователю/программисту лучше его изменить и дать мнемониче-

ское имя – имя, которое отражает суть данного объекта. На рис.2.2 показаны надписи, данные объектам CommandButton и Frame.

14

CommandButton1

CommandButton3

Рис. 2.2 Разработка формы с помощью элементов панели инструментов. Показано окно свойств кнопки CommandButton1, с подписью

«Задать вопрос!».

II. Разработка программного кода для элементов формы

Чтобы вызвать окно для набора программного кода, сопровождающего каждый внедренный элемент формы, необходимо использовать контекстное меню: наводим курсор на объект, правой кнопкой мыши вызываем контекстное меню: View Object – видим сам объект, View Code – видим программный код.

Текст программ для основных элементов дан в следующей таблице, используя его, введем программный код для каждого элемента формы. Справа дано описание назначения операторов и переменных. Внимательно ознакомьтесь с этой информацией, она раскрывает суть работы программы. Обратите внимание на замечания и ответьте на вопросы, сделанные в выносках, сопровождающих текст программы.

15

 

 

Программный код

Описание

 

Dim flag As Boolean

Переменные уровня модуля

 

Dim vopros As String

 

 

 

Private Sub UserForm_Activate()

Активизация

пользователь-

Frame1.Visible = False

ской формы

 

 

CommandButton3.Visible = False

На ней пока скрыта рамка и

CommandButton4.Visible = False

кнопки, введенные в рамку,

CommandButton5.Visible = False

необходимые

для диалога

в

End Sub

 

 

случае, если вопрос задан

 

Private Sub CommandButton1_Click()

Кнопка для

выбора вопроса

Dim n As Byte

 

 

из списка. Если вопрос задан,

flag = True

 

 

то включается логическая пе-

n = NomerVopros(13) 'Выбор случайным образом номера

ременная flag.

 

 

вопроса

 

 

В п/ф NomerVopros(13) слу-

vopros = ActiveDocument.Sentences(n).Text

чайным образом формируется

TextBox1 = vopros

 

 

номер вопроса, равный номеру

If flag Then

 

 

предложения

- Sentences(n).

Frame1.Visible = True

Число 13 равно числу «во-

CommandButton3.Visible = True

просов» в списке «Содержа-

CommandButton4.Visible = True

ние».

 

 

CommandButton5.Visible = True

Предложениями считаются

End If

 

 

 

непустые предложения.

 

 

У Вас может быть другое

 

 

End Sub

 

 

После включения flag эле-

 

число!!!

 

 

 

 

менты рамки и сама рамка

 

 

 

 

 

 

 

 

становятся видимыми.

 

Private Sub CommandButton2_Click()

Обработка конки 2. – случая,

ans = MsgBox("Стоило ли нажимать на кнопку?!",

когда тестируемый покидает

vbYesNoCancel)

 

 

форму, не задав вопроса.

 

Select Case ans

 

 

Используется функция окна

Case vbYes

 

 

сообщения vbYesNoCancel

с

Text$ = "Ладно уж, гуляй!"

тремя возможными кнопками.

 

Case vbNo

 

 

Операторы окна сообщения –

Text$ = "A что так???"

реакция программы на вы-

Case vbCancel

 

 

бранную кнопку.

 

Text$ = "Отвали сам!"

 

 

 

End Select

 

 

 

 

 

MsgBox Text$, vbExclamation, "Учиться никогда не

После обработки кнопок вы-

стыдно!"

 

 

дается сообщение и форма за-

16

 

 

 

 

 

 

 

 

 

 

UserForm1.Hide

крывается.

 

 

End Sub

 

 

 

 

 

Private Sub CommandButton3_Click()

Обработка кнопки в случае,

k = Int(Rnd * 3) + 1

когда «тестируемый» утвер-

Select Case k

ждает, что знает ответ на во-

Case 1

прос.

 

 

 

Text$ = "Ну, и молодец!"

 

 

 

 

 

Case 2

 

 

 

 

 

Text$ = "Гонишь, наверное!"

 

 

 

 

 

Case 3

 

 

 

 

 

Text$ = "Чё, ботанишь много?"

 

 

 

 

 

End Select

 

 

 

 

 

MsgBox Text$, vbExclamation, "Учиться никогда не

 

 

 

 

 

стыдно!"

 

 

 

 

 

End Sub

 

 

 

 

 

Private Sub CommandButton4_Click()

Обработка копки с

ответом

Dim mess As String

«Не знаю»

 

 

mess = vbQuestion + vbYesNo

 

 

 

 

 

ans = MsgBox("Хочешь узнать?", mess)

В случае, если «тестируе-

If ans = vbYes Then

мый» выбирает «справку», то

MsgBox "Посмотри справку по заданному вопросу"

открывается документ Word, в

' убираем знак конца абзаца из предложения

котором

находится

содержа-

nsymb = Len(vopros)

ние заданного вопроса. Доку-

vopros = Mid(vopros, 1, nsymb - 1)

мент рассматривается как объ-

Dim wa As Object

ектная переменная wa.

 

Set wa = CreateObject("word.application")

 

 

 

 

 

 

оператор должен быть

file_name$ = "D:\Практ_работа_1\Files_1\" & vopros &

 

 

написан в одну строку

".doc"

 

 

 

 

 

 

wa.Documents.Open file_name$

Выделенный текст

должен

wa.Visible = True

соответствовать пути к файлу

Else

на Вашем компьютере. Полное

MsgBox "А неумным, неученым - стыд и срам! Стыд и

имя формируется из адреса и

срам!"

имени файла, которое совпа-

MsgBox "Повторяю - стыд и срам! Стыд и срам!"

дает с текстовой

переменной

End If

vopros. Расширение файла за-

End Sub

висит от версии MS Office, в

 

данном

примере

расширение

 

соответствует MS Office 2003.

Private Sub CommandButton5_Click()

Самостоятельно

разработать

17

 

 

код для этой кнопки, согласно

End Sub

 

которому а) задается вопрос с

 

 

выбором ответа (YesNo); б)

 

 

если

ответ

положительный

 

 

программа

должна

закрыть

 

 

приложение

с

предваритель-

 

 

ным предупреждением: в) если

 

 

ответ

отрицательный

задать

 

 

вопрос в диалоговом окне вво-

 

 

да, например, «Сколько будет

 

 

2×2?». Если ответ правильный,

 

 

похвалить, если

ответ непра-

Формула зависит от числа пред-

 

 

вильный, то

дать назидатель-

ложений в Вашем документе.

 

 

ный комментарий.

 

 

 

 

 

 

 

 

 

 

Function NomerVopros(m)

 

Программа-функция случай-

Randomize Timer

 

ным образом формирует номер

NomerVopros = Int(Rnd * m) + 5

 

вопроса,

соответствующий

End Function

 

номеру предложения в Содер-

 

 

жании

 

 

 

 

 

 

 

 

 

Объясните, почему в данном примере

 

 

стоит число 5. Какое число необходи-

 

 

мо поставить для Вашего документа?

 

 

 

 

 

 

 

III. Вызов формы из документа Word

 

 

 

 

Чтобы вызвать созданную форму, создадим в документе Word кнопку, используя панель инструментов «Элементы управления». Предварительно первую страницу отделим от кнопки так, как показано на рис. 2.3.

Пишем программный код для новой кнопки, который открывает созданную нами форму (Рис. 2.4).

Private Sub CommandButton1_Click()

UserForm1.Show

End Sub

18

Рис. 2.3 Кнопка для самопроверки и страница «Содержания»

Рис.2.4 Структура всего проекта «электронного учебника» с кодом кнопки, вызывающей пользовательскую форму

Поработать с построенной формой, вызвав ее кнопкой «Провести самопроверку». Показать результаты работы преподавателю.

* * *

Контрольные вопросы

1.Способы создания пользовательской формы.

2.Как записать программный код для встроенных элементов формы?

19

3.Как формируется выбор вопросов из текста документа?

4.В каких операторах осуществляется доступ к файлам со «справкой»?

5.Объясните работу операторов с объектной переменной wa.

6.Объясните принцип использования генератора случайных чисел при формировании номера вопроса и варианта ответа при нажатии кнопки CommandButton3.

7.Где находятся программные кода для объектов формы и объектов документа Word?

Практическая работа № 3

Построение информационной системы «Тест»

Цель работы

Используя Элементы управления и программы на VBA, создать интерфейс информационной системы (ИС) для тестирования студентов по теме лекций курса «История развития вычислительной техники». Для этого на листе Excel создать соответствующие кнопки и формы. База вопросов по теме курса с вариантами ответов заносится на один из листов.

Разработанная программа должна выбирать случайным образом вопросы по выбранной теме, формировать «электронный билет» и принимать ответ от тестируемого на каждый вопрос билета. По специальным кнопкам можно проверить результат своего ответа или выйти из процесса тестирования.

В«билете» 3 вопроса. Один правильный ответ – оценка 3, два – 4, три –

5.Повторно пройти тестирование, даже по другой теме, нельзя.

Результаты тестирования записываются на отдельный лист.

I. Главная форма – создание кнопки для запуска тестирования

1.Открыть приложение Excel

2.Создать книгу с тремя листами (Рис. 3.1). Дайте название книге «ТЕСТ», каждому листу – «Главная форма», «Список студентов».

3.В папке с файлом методической работы имеется файл «База_вопросов». Открыть этот файл. На вкладке листа «Вопросы» вызвать контекстное меню, перейти к команде «Переместить/Скопировать». В поле

«Переместить выбранные листы в книгу» открывшегося диалогового окна выбрать имя созданной Вами книги, установить флажок «Создать копию»

20

(!!! НЕ ЗАБУДЬТЕ про флажок, иначе вы УДАЛИТЕ исходный лист из чужой книги) и только тогда нажать кнопку «ОК».

4. На листе «Главная форма создать» кнопку «Тестирование» (рис. 3.1), используя на вкладке Разработчик в группе Элементы управления кнопку-

команду Вставить Элементы управления формы.

Рис. 3.1. Книга ИС «ТЕСТ»

5.Отредактировать надпись на кнопке, используя команду контекстно-

го меню Формат объекта.

6.Используя команду Просмотр кода с ленточной вкладки Разработчик Элементы управления создать процедуру обработки созданной кнопки на языке VBA:

Sub Кнопка1_Щелчок() UserForm1.Show

End Sub

Кнопка открывает первую пользовательскую форму. Текст этой программы будет записан в отдельном модуле редактора VBA.

II. Первая пользовательская форма – выбор темы для тестирования

1. Перейти в окно реактора VBA

Используя команду Insert горизонтального меню окна, создать форму UserForm (рис. 3.2). На неё встроить объекты Переключатель и Кнопка.