
- •Таблица 1
- •Таблица 2
- •Таблица 3
- •Таблица 4
- •Таблица 6
- •Таблица 7
- •10.2. Задание для выполнения на компьютере
- •10.3. Контрольные вопросы
- •11.3. Контрольные вопросы
- •Рис. 12.2. Листы рабочей книги «Товары» и «Заказчики» со списками
- •Range(«a11:e11»).ClearContents
- •12.3. Контрольные вопросы
- •Рис. 13.1. Вид заполненного бланка приложения «Извещение»
- •При создании программы для командной кнопки «Должники» необходимо учитывать, что в ней будут обращения из текстового документа к объектам, принадлежащим табличным документам Excel.
- •Рис. 13.2. Интерфейс диалогового окна проекта «Извещение»
- •Dim tab1 As Worksheet
- •13.3. Контрольные вопросы
- •Анкета «Заказ товара» может быть обработана программой процедуры обработки события OnClick для командной кнопки «Информация о заказе» следующего вида:
- •Рис. 14.6. Окно сообщения с информацией о заказе
- •14.2. Задание для выполнения на компьютере
- •14.3. Контрольные вопросы
- •Рис. А2.1. Примерный интерфейс приложения «Калькулятор»
- •Next
10.2.Задание для выполнения на компьютере
1.Создать макросы для активного текстового документа, производящие переход к нижнему индексу, верхнему индексу и нормальному шрифту.
2.Создать макрос, формирующий сложный заголовок с заданием для его текста гарнитуры, начертания, размера, цвета и различных эффектов.
3.Создать макрос в Excel, выводящий в любое указанное место таблицы список сотрудников.
4.Создать макрос в Excel, формирующий бланк счет-фактуры, представленный на рис. 10.4.
5.В текстовом редакторе Word, а затем в электронных таблицах Excel вызвать редактор VBA, найти и проанализировать в структуре проектов документов тексты программ ранее созданных макросов.
6.Отредактировать созданные ранее макросы для текстового документа в редакторе VBA с изменением размера шрифта на 11 и его начертания на полужирный (свойство Bold).
7.Отредактировать созданный ранее для электронной таблицы Excel макрос в редакторе VBA с добавлением в список сотрудников инициалов сотрудников.
10.3.Контрольные вопросы
1.Что называется макросом?
2.Преимущества и недостатки программ, записанных с помощью макросов.
3.Назначение и функции макрорекордера.
4.Способы запуска макроса на выполнение.
5.Как создать макрос в текстовом редакторе Word?
6.Два типа макросов в текстовых документах.
7.Как создать макрос в электронных таблицах Excel?
8.Использование режима относительных ссылок для записи макросов в Excel.
9.Общая структура редактора VBA.
10.Общая структура проекта электронных документов.
11.Особенности текстов программ макросов.
12.Как отредактировать программу макроса в редакторе VBA?
96
11. ПРОГРАММИРОВАНИЕ НА VBA В ТЕКСТОВЫХ И ТАБЛИЧНЫХ ДОКУМЕНТАХ
11.1. Общие сведения
Текстовые документы, электронные таблицы, базы данных и другие документы Microsoft Office имеют характерные только для них объекты, но поскольку управление во всех документах производится на одной и той же основе языка VBA, то многие объекты в документах пакета имеют одинаковое назначение. Ниже в табл.8 и табл. 9 приведены основные объекты соответственно в текстовых документах и электронных таблицах.
|
|
Таблица 8 |
|
|
|
|
|
Объект Word |
Назначение |
Пример использования |
|
Documents |
Текстовые файлы |
Documents(«Товары.doc») |
|
Sections |
Разделы |
Sections(3) |
|
Paragraphs |
Абзацы |
Paragraphs(2) |
|
Sentences |
Предложения |
Sentences(4) |
|
Words |
Слова |
Words(5) |
|
Characters |
Символы |
Characters(7) |
|
Range |
Область |
Paragraphs(2).Range |
|
Selection |
Выделение |
Selection.Font.Size = 12 |
|
|
|
Таблица 9 |
|
|
|
|
|
Объект Excel |
Назначение |
Пример использования |
|
Workbooks |
Файлы таблиц |
Workbooks(«c:\tab1.xls») |
|
Worksheets |
Листы в таблице |
Worksheets(«накладная») |
|
Diagrams |
Диаграммы |
Diagrams(2) |
|
Cells |
Ячейки в таблице |
Cells(i,j) |
|
Range |
Область |
Range(«a2:c5») |
|
Selection |
Выделение |
Worksheets(1). Selection |
|
Большинство объектов электронных документов являются экземплярами из коллекции или класса объектов, поэтому обращение к ним происходит при указании конкретного объекта из его коллекции. Например, второй абзац в текстовом документе оюозначается как Paragraphs(2), а указанная область ячеек на листе электронной таблицы – Range(«a2:c5»). Многие объекты являются составными частями других объектов, что указывается при объединении объектов в це-
97

лое использованием символа точки, причем подчиненные объекты в записи располагаются правее. Например, для выбора второго слова в третьем абзаце четвертого раздела текстового документа с именем «Товар» необходимо записать в одну строку
Documents(«Товар.doc»).Sections(4).Range.Paragraphs(3).Range.Words(2)
Для записи программы на VBA необходимо из пункта меню Вид
вызвать командой Панели инструментов панель Элементы управ-
ления. Затем перейти в Режим конструктора, нажав на этой панели одноименную кнопку (она может быть нажата по умолчанию). После этого следует создать элемент управления, нажав соответствующую кнопку на панели Элементы управления и очертив мышью его размеры в поле документа. При активизированном элементе управления (когда на нем имеются маркеры) можно перейти в окно программного кода, нажав на панели кнопку Исходный текст. В появившемся окне следует набирать текст программы.
-переход в режим Конструктора (редактора VBA)
-активизация окна Свойства
-переход в окно Исходный текст (программного кода)
-флажок (CheckBox)
-текстовое окно (TextBox)
-командная кнопка (CommandButton)
-переключатель (OptionButton)
-простой список (ListBox)
-комбинированный список (ComboBox)
-надпись (Label)
-изображение (Image)
-дополнительные элементы управления
Рис. 11.1. Панель Элементы управления для документов
98

Пример 11.1. Программа командной кнопки CommandButton1 для вывода в текстовое окно TextBox1 фамилии в диалоговом режиме в документе Word (рис 11.2).
x = InputBox(«Ведите Вашу фамилию») TextBox1.Text = x
Необходимо отметить, что для размещения элемента управления в строке текста необходимо удерживать нажатыми клавиши Ctrl и Shift, в противном случае элемент управления может размещаться в отдельном абзаце.
Уважаемый !
Приглашаем Вас принять участие в вечере, посвященном юбилею нашего университета.
Заполнить
Рис. 11.2. Текстовый документ Word с элементами управления
Пример 11.2. Программа вычисления суммы элементов массива d = {5, 2; 4,5; 1; 2,9; 3} (см. пример 5.2 из раздела 5) в таблице Excel
может иметь следующий вид:
Dim d(1 To 5) As Single, s As Single Dim r As String, i As Integer
s = 0
For i = 1 To 5
d(i) = Val(InputBox(«Введите элемент массива d»)) s = s + d(i)
Next i
r = «Сумма элементов массива равна» & s MsgBox (r)
В этой программе для вывода результата использован оператор MsgBox, так как оператор Print в языке VBA не используется. Поскольку MsgBox выводит только одну переменную, то для печати тек-
99

ста «Сумма элементов массива равна» с полученным значением суммы в переменной s во вспомогательной строковой переменной r они объединяются посредством операции конкатенации (объединения), выполняемой символом &.
Для запуска программы на выполнение необходимо вернуться на рабочий лист Excel с созданной кнопкой, выйти из режима конструирования, нажав на панели Элементы управления кнопку Выход из режима конструктора, и запустить разработанную программу, щелкнув мышью по созданной кнопке.
Пример 11.3. Программа командной кнопки CommandButton1 для вычисления суммы элементов приведенного выше массива d, размещенных на рабочем листе «Лист1» во втором столбце, начиная с ячейки b2 до b6 или, иначе, с ячейки Cells(2,2) до Cells(6,2) (рис. 11.3). Результат помещается в ячейку b7.
Dim s As Single, i As Integer
s = 0
For i = 1 To 5
s = s + Worksheets(«Лист1»).Cells(i, 2)
Next i
Worksheets(«Лист1»).Range(«b7») = s
Рис. 11.3. Таблица Excel с элементом управления
Необходимо отметить, что документами в Word или Excel тельных диалоговых окон языка
обычно управление электронными производится с помощью вспомога- VBA, которые в проекте документа
100

называются пользовательскими формами UserForms (см. рис. 4.1, 4.2) и являются аналогом стандартных окон форм Form в языке VB. Для того, чтобы в проект документа включить диалоговую пользовательскую форму, необходимо в редакторе VBA выполнить команду Вставка/UserForm. После этого в проект документа добавится объект UserForm1, а на экране появится заготовка пользовательской формы UserForm1 и Панель элементов Toolbox (рис. 11.4), практически совпадающая с панелью инструментов Элементы управления, размещаемых на самих документах.
Рис. 11.3. Окно пользовательской формы UserForm1 в проекте документа Word
После создания пользовательской формы в проекте VBA текстового документа Word либо таблицы Excel можно разрабатывать на ней интерфейс и программный код для размещаемых на ней элементов управления аналогично языку VB. При этом необходимо учитывать и некоторые отличия: в VBA отсутствуют графическое окно PictureBox и соответственно графические методы Pset, Line, Circle, а также метод Print и т.п., что связано с особенностями структуры электронных документов. Однако большинство задач, решаемых на языке VB можно запрограммировать с таким же успехом и на языке VBA. Например, вывод значений в переменных x, y либо вычисляе-
101

мых выражений можно производить по программе VBA для командной кнопки в текстовые окна TextBox либо на метки Label пользовательской формы UserForm, используя соответственно их свойства
Text и Caption.
Пример 11.5. Программа на языке VBA для командной кнопки вычисления выражений и вывода результатов в текстовые окна и на метку, размещенных на пользовательской форме UserForm1
(рис. 11.4).
Dim x As Single, y As Single x = 123.4567
y = Format(x, «####.##») TextBox1.Text = x TextBox2.Text = y
Label1. Caption = «z = » & 5*Sin(10)/3
Рис. 11.4. Вывод результатов в текстовые окна и на метку
В заключение отметим, что для появления на экране пользовательской формы UserForm1 необходимо, прежде всего, в самом электронном документе выполнить оператор
UserForm1.Show
записанный в программном коде процедуры для обработки какоголибо события, совершаемого либо с самим документом, либо с размещенным на нем элементом управления. Для закрытия же окна пользовательской формы и возврата в вызывавший форму документ необ-
102