Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Часть 2. Основы офисного программирования.doc
Скачиваний:
8
Добавлен:
01.05.2025
Размер:
4.04 Mб
Скачать

9.5.Использование элементов управления в документах Word

Как уже было сказано, элементы управления используются всеми приложениями Microsoft Office. Они могут включаться в пользовательские формы для создания диалоговых окон, элементы управления можно размещать на рабочих листах Excel, элементы управления можно размещать на страницах документа Word.

Frame5

Панели управления «Формы» и «Элементы управления» в Word выполняют те же функции, что и в Excel, но вид панели «Формы», набор ее инструментов является специфическим для Word (на ней присутствуют кнопки для создания таблиц и рамок).

Средства, предоставляемые панелью «Формы», позволяют включать в документ текстовые поля, поля со списками и флажки. Для каждого такого элемента создается поле соответствующего типа. Однако для разработки приложений лучше использовать элементы управления ActiveX, доступные через панель «Элементы управления». Порядок работы с этими элементами аналогичен способу, описанному для Excel. Программные средства управления элементами также описаны выше. С каждым событием, связанным с элементами управления, можно связать код на VBA, таким образом, значения, которые могут быть введены, выбраны или установлены с помощью этих элементов, можно запомнить в переменных документа и использовать для вычислений, необходимых для создания документа.

Элементы управления, предварительно помещенные в буфер, могут быть «внедрены» в текст с помощью команды Специальная вставка… меню Правка. Объекты, вставленные с помощью этой команды в текст (в диалоговом окне команды нужно выбрать соответствующий тип объекта, флажок «Поверх текста» должен быть сброшен), превращаются в «символы» в тексте документа, для них можно установить параметры шрифта (например, смещение относительно базовой линии строки).

Элементы управления можно сгруппировать на странице документа в режиме конструктора, соединив их, зафиксировав взаимное расположение элементов, создав с их помощью «форму».

Элементы управления удобно использовать, в частности, для создания шаблонов анкет и т.п. Ниже рассматривается пример такого приложения.

9.6.Создание шаблонов документов на основе таблиц

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

Ниже приведен пример шаблона документа, для заполнения которого используются элементы управления (рис. 31).

Для ввода фамилии, имени и отчества используются текстовые поля (объекты TextBox).

При открытии анкеты в этих полях отображается текст приглашения «Введите…». При перемещении «фокуса» на один из этих элементов весь содержащийся в поле текст выделяется. Для реализации такого выделения должна быть написана процедура обработки события GotFocus, код которой приведен ниже:

Private Sub Surname_GotFocus()

Surname.SelStart = 0

Surname.SelLength = Len(Surname.Text)

End Sub

Код процедуры принадлежит элементу управления Surname (поле для ввода фамилии). Сделанное выделение позволит автоматически стереть весь ранее введенный текст при вводе любого символа, т.е. текст приглашения не нужно стирать вручную.

При переносе фокуса на любое другое поле можно осуществить проверку, не осталось ли поле пустым. Это можно сделать с помощью следующего обработчика события:

Private Sub Surname_LostFocus()

If Surname.Text = "" Then

Surname.Text = "Введите фамилию"

End If

End Sub

Год рождения – число, которое вводится в текстовое поле. Если требуется ограничить возраст принимаемых на работу, для этого значения можно установить ограничения (в данном примере год рождения должен попасть в диапазон от 1950 до 1975). Кроме того, следует предотвратить возможность ошибки при вводе числа (например, нельзя допустить ввод букв). Для того чтобы можно было не вводить число с клавиатуры, а выбрать значение с помощью мыши, рядом с данным полем размещен элемент управления «Счетчик» (SpinButton). В свойствах этого элемента заданы максимальное и минимальное допустимые значения. Значения, соответствующие двум этим элементам, должны быть равны. Ниже приведены обработчики события для текстового поля ГодРождения, в которое вводится год рождения, и соответствующего счетчика AgeCount, показывающие, как можно контролировать изменение значений элементов управления и установить соответствие между значениями двух элементов:

Private Sub ГодРождения_Error(ByVal Number As Integer, _ ByVal Description As MSForms.ReturnString, _ ByVal SCode As Long, ByVal Source As String, _ ByVal HelpFile As String, ByVal HelpContext As Long, _ ByVal CancelDisplay As MSForms.ReturnBoolean)

MsgBox "Год рождения должен быть числом от 1950 до 1975"

В случае ошибки выбирается значение из счетчика:

ГодРождения.Value = Trim(Str(AgeCount.Value))

End Sub

Private Sub ГодРождения_LostFocus()

Dim A As Integer

A = Val(ГодРождения.Value)

If (A < 1950) Or (A > 1975) Then

Введено недопустимое значение:

MsgBox "Год рождения должен быть между 1950 и 1975"

Восстанавливается прежнее значение:

ГодРождения.Value = Trim(Str(AgeCount.Value))

ElseЗначение счетчика устанавливается равным введенному числу:

AgeCount.Value = A

End If

End Sub

Private Sub AgeCount_Change() ‘ Каждое изменение счетчика ведет к изменению поля:

ГодРождения.Value = Trim(Str(AgeCount.Value))

End Sub

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

Аналогично можно организовать ввод и контроль дня месяца (числа в дате рождения).

Для ввода месяца в дате рождения используется элемент управления «Поле со списком» (ComboBox) МесяцРождения. Этот элемент допускает как ввод значения с клавиатуры, так и выбор значения из списка допустимых значений. Включить нужные значения в список можно при открытии документа. Для этого нужно написать обработчик соответствующего события:

Private Sub Document_Open()

With МесяцРождения

Obj = .AddItem("декабрь", 0)

Obj = .AddItem("ноябрь", 0)

Obj = .AddItem("октябрь", 0)

Obj = .AddItem("сентябрь", 0) ...

End With

With Образование

Obj = .AddItem("начальное", 0)

Obj = .AddItem("среднее", 0)

...

End With

...

End Sub

В этой же процедуре можно установить значения всех свойств элементов управления, если они не были установлены при создании объектов.

Аналогично организован выбор значений из списка в поле «Образование» и в полях, в которых указывается степень владения иностранными языками.

Введенную информацию можно сохранить, как документ Word, вывести на печать. Кроме того, информацию, введенную в поля формы, можно сохранить в базе данных для дальнейшего использования. Эти действия можно реализовать в обработчике события закрытия документа.

Если разработанная форма сохраняется в качестве шаблона, на основе которого будут созданы новые документы, то команды инициализации (например, включения элементов в список) должны быть добавлены и в обработчик события создания нового документа.

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

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

Кроме того, электронные формы документов позволяют организовать ввод информации «на расстоянии», по сети. Все продукты Microsoft Office включают средства работы в Internet.