
- •Лабораторная работа №1 Интегрированная среда разработки приложений vba
- •Общие положения
- •Порядок выполнения работы
- •Содержание отчета
- •Контрольные вопросы
- •Лабораторная работа №2 Реализация интерактивного диалога
- •Общие положения
- •Порядок выполнения работы
- •Содержание отчета
- •Контрольные вопросы
- •Лабораторная работа №3 Работа с массивами данных
- •Общие положения
- •Порядок выполнения работы
- •Содержание отчета
- •Контрольные вопросы
- •Лабораторная работа №4 Работа с документами Word
- •Общие положения
- •Порядок выполнения работы
- •Содержание отчета
- •Контрольные вопросы
- •Лабораторная работа №5 Программирование панели инструментов
- •Общие положения
- •Порядок выполнения работы
- •Содержание отчета
- •Контрольные вопросы
- •Список использованной литературы
Порядок выполнения работы
Изучите теоретическую часть работы.
Добавьте форму в проект, и для кнопки CommandButton1 введите текст событийной процедуры для обработки события Click, позволяющей ввести с клавиатуры элементы массива из нескольких слов. Запустите проект на выполнение.
Добавьте кнопку CommandButton2 и введите текст событийной процедуры для отображения элементов массива. Запустите проект на выполнение.
Добавьте событийную процедуру для поиска слова (использовать функцию InputBox для ввода образца слова при поиске в массиве слов).
Добавьте форму в проект, и для двух кнопок CommandButton создайте две событийные процедуры для: а) заполнения случайными числами массив целого типа, используя функцию Rnd; б) вывода значений массива в окно сообщения.
Добавьте в форму необходимые элементы управления и создайте событийную процедуру для вычисления и вывода значений суммы элементов массива, среднего, минимального и максимального значения.
Добавьте событийную процедуру для определения интервала введенного числа (использовать функцию InputBox для ввода числа).
Добавьте форму в проект и создайте событийные процедуры для: а) упорядочивания целых чисел в массиве по убыванию или по возрастанию; б) вывода значений этого массива в окно сообщения; в) обнуления элементов этого массива.
Добавьте форму в проект и создайте событийные процедуры для работы с динамическим массивом: а) заполните двумерный массив шестью элементами; б) переопределите его как таблицу 3х3 с сохранением данных; в) отобразите элементы двумерного массива в окне сообщений, используя функции LBound, Ubound для задания границ массива.
Содержание отчета
Название работы и ее исполнитель.
Цель работы.
Краткое описание выполняемой работы
Выводы.
Приложения с листингом процедур и окнами результатов работы.
Контрольные вопросы
Что понимается под массивом данных? Какие бывают массивы? Как осуществляется доступ к элементам массива?
Какие функции и операторы для работы с массивами вы знаете, для чего они предназначены?
Для чего предназначены циклы? Какие циклы вы знаете?
Как осуществляется заполнение информацией элементов массива и вывод содержимого его элементов?
Как обеспечивается «ветвление» в программе в зависимости от значения условия?
Чем различается действие операторов If…Then…Else, If…Then…Else…End If, Select Case?
Лабораторная работа №4 Работа с документами Word
Цель работы: изучить основные свойства и методы некоторых объектов Word 2000/2002, научиться модифицировать макросы и создавать программы для автоматизации работы с документами.
Общие положения
Кроме объектов, реализующих графический интерфейс приложения (кнопки, переключатели, надписи и т.д.), в VBA еще используется более 100 различных объектов, существующих в среде MS Office. Объекты группируются в иерархические классы и коллекции объектов, на вершине иерархии находится объект Application (приложение). Объект Application для MS Word включает в себя множество объектов, структуру и описание которых можно посмотреть в справке VBA для ключевого слова «object». Некоторые общие объекты Word 2000/2002 [1-3] приведены в таблице 4.1.
Таблица 4.1 – Некоторые объекты Word
Объект |
Описание |
Application |
Само приложение Word (host-приложение |
Documents |
Коллекция всех открытых в данный момент документов |
Document |
Текущий документ |
Sentences |
Коллекция предложений документа |
Paragraph |
Отдельный абзац в документе |
Paragraphs |
Коллекция объектов Paragraph в документе, разделе или диапазоне |
Font |
Содержит атрибуты шрифта и стиля для текста, отображаемого в объекте |
Characters |
Семейство символов в документе, разделе или выбранном фрагменте (диапазоне) активного документа |
Table |
Отдельная таблица в документе |
Tables |
Коллекция таблиц в документе |
Windows |
Коллекция всех окон в приложении |
Window |
Любое окно в Windows |
Template |
Шаблон документа |
Каждый объект является экземпляром какого-то класса. Экземпляр объекта Document создается при создании или открытии документа в Word.
Семейство (коллекция) объектов представляет собой объект, содержащий несколько объектов, экземпляров одного класса. Например, все открытые в текущий момент в приложении Word документы образуют семейство Documents. Обращение к объекту, входящему в семейство, производится по его имени или индексу. Например, Documents(“ОТЧЕТ.doc”).Close – обращение к конкретному документу из нескольких открытых документов с его последующим закрытием; ActiveDocument.Sentences(1) – обращение к 1-му предложению активного документа.
Объекты, принадлежащие определенному классу объектов, называются членами (members) этого класса. Для поиска свойства или метода любого объекта можно использовать окно Object Browser, выбрав двойным щелчком кнопки мыши нужный объект в списке Classes и в списке Members Of выбрать подходящий метод или свойство.
Для обращения к объекту используется ссылка на объект, которая состоит из ряда имен вложенных последовательно друг в друга объектов, разделенных точкой. Свойства и методы объекта также разделяются точкой. Например, Application.Documents("ОТЧЕТ.doc"). Activate – полная ссылка на документ ОТЧЕТ с активизацией этого документа. Вывести на экран окно с сообщением имени активного документа можно функцией MsgBox ( MsgBox "Активный документ" & ActiveDocument.Name).
Свойства объектов могут содержать численные, строковые, логические значения, а также возвращать значения типа Object, т.е. выступать в качестве объекта и иметь свои свойства. Некоторые свойства приведены в таблице 4.2.
Таблица 4.2 – Некоторые свойства объектов Word
Свойство |
Тип/Значение |
Применяются с объектами, методами, свойствами |
ActiveDocument |
Object: активный документ |
Paragraphs, Select, Range и др. |
ActiveWindow |
Object: активное окно |
Close и др. |
Count |
Long: число объектов в коллекции |
Во всех объектах коллекций |
Name |
String: имя объекта |
ActiveDocument и др. |
Selection |
Object: выбранный диапазон документа или курсор ввода |
Range, Move и др. |
Range |
Object: часть документа (диапазон), содержащаяся в указанном объекте |
Selection, Paragraphs, Tables и др. |
StatusBar |
String: сообщение строки состояния в окне документа |
Application |
Примеры использования свойств и методов объектов приведены в листинге фрагмента программы на рисунке 4.1.
' Активизация ранее открытого документа
Documents("doc4.doc").Activate
MsgBox "Имя активного документа" & ActiveDocument.Name
otv = Documents.Count
MsgBox "Число открытых документов" & otv
otv1 = ActiveDocument.Paragraphs.Count
MsgBox "Число абзацев в активном документе" & otv1
MsgBox "Число выделенных символов " & Selection.Characters.Count
' Закрытие активного окна с документом
ActiveWindow.Close
Рисунок 4.1 – Листинг фрагмента программы
Объект обычно имеет несколько свойств, методов. С помощью оператора With … End With можно задать значения нескольким свойствам объекта, не указывая для них полную ссылку (рисунок 4.2).
' Форматирование выделенного фрагмента документа
With Selection.Font
.Name = "Arial"
.Italic = wdToggle
.Size = 12
End With
Рисунок 4.2 – Листинг фрагмента программы
Методы для работы с объектами Word приведены в таблице 4.3.
Таблица 4.3 – Некоторые методы объектов Word
Метод |
Назначение |
Имеется в объектах |
Open, Save |
Открытие, сохранение указанного документа |
Documents |
Save As |
Сохранение документа под другим именем |
Documents |
Add |
Добавление нового объекта (документа, абзаца, таблицы и др.) в семейство |
Documents, Paragraphs, Tables и др. |
Activate |
Активизация уже открытого документа |
Documents |
Close |
Закрытие указанного объекта |
Documents, Windows |
Delete |
Удаление указанного объекта |
Range и др. |
Copy, Paste |
Копирование в буфер обмена и вставка из буфера обмена фрагмента документа |
Range и др. |
Range |
Определение диапазона объекта (абзаца, таблицы, отдельной ячейки таблицы и др.) |
Paragraphs, Tables и др. |
InsertBefore, InsertAfter |
Вставка текста в определенное место документа (в начало или конец диапазона), не затрагивая при этом существующий текст |
Selection и др. |
Move, MoveUp, MoveDown, MoveRight, MoveLeft |
Перемещение диапазона или выделенной области |
Selection и др. |
Expand |
Расширение диапазона выделенной области |
Selection и др. |
Select |
Выбор указанного объекта |
Document и др. |
Информацию о номере строки нахождения курсора в диапазоне можно получить, указав в окне сообщения - Selection.Information(wdFirstCharacter LineNumber); выбор любого, например 3-го абзаца в документе, можно осуществить с помощью метода Select – ActiveDocument.Paragraphs(3). Range.Select.
Многие методы имеют аргументы, позволяющие задавать параметры для выполняемых действий. Например, Selection.Expand Unit:=wdParagraph – для выделенного фрагмента аргумент Unit указывает диапазон расширения выделенной области до конца абзаца; Selection.MoveRight Unit:=wdCharacter, Count:=5, Extend:=wdExtend – выделяется фрагмент текста перемещением вправо, единица перемещения – символ (Unit:=wdCharacter), количество символов равно 5 (Count:=5), все символы необходимо выделить (Extend:=wdExtend). Если необходимо переместить курсор в определенное место текста без его выделения – аргумент Extend не указывается. При вставке таблицы в активный документ (ActiveDocument.Tables.Add Range:=Selection.Range, NumRows:=2, NumColumns:=5, AutoFitBehavior: =wdAutoFitFixed) используются следующие аргументы: NumRows – число строк таблицы, NumColumns – число столбцов таблицы, AutoFitBehavior – задание автоподбора ширины столбцов.
Создание программ для автоматизации работы с документами достаточно сложный процесс, поэтому целесообразно использовать макросы для кодирования алгоритма, связанного с преобразованием документа. В любом документе приложения Word можно создавать макросы, реализующие функции работы с документом (открытие нужного документа, редактирование его, создание нового документа и т.д.). Затем этот макрос редактируется в соответствии с требованиями задачи и при необходимости копируется в модуль. Макросы не создают структур цикла, не организуют ветвления в программе, не создают переменных.
Для ссылок на объекты VBA используются объектные переменные, которые можно объявлять оператором Dim, а ссылку на объект указывать оператором Set (Dim a1 As Object: Set a1 = Selection.Range – объявление объектной переменной а1 и указание ссылки на объект выделенного фрагмента документа). Можно объявить объектную переменную, которая сохраняет только объекты определенного класса (Dim NDoc As Document: Set NDoc = Documents("doc4.doc"): NDoc.Activate - объявление объектной переменной Ndoc только для объектов класса Document, указание ссылки на ранее открытый документ doc4.doc с последующей его активизацией). Освобождение объектной переменной от привязки к конкретному объекту задается оператором Set объектн. перем. = Nothing, например Set a1 = Nothing. Объектная ссылка является только адресом, указывающим место в памяти компьютера, где сохранен объект. Поэтому объектные переменные нельзя использовать в арифметических, логических операторах и операторах сравнения. На рисунке 4.3 приведен пример использования объектной переменной для создания нового документа.
Sub pr4_3()
' Создание нового документа
Dim NewDoc As Document
Set NewDoc = Documents.Add
' Установка шрифта для всего документа
' Установка альбомной ориентации
' Сохранение по имени Doc5
With NewDoc
.Content.Font.Name = "Arial"
.Content.Font.Size = 12
.PageSetup.Orientation = wdOrientLandscape
.SaveAs FileName:="c:\User\HH\Doc5.doc"
End With
MsgBox "Имя активного документа" & ActiveDocument.Name
End Sub
Рисунок 4.3 – Листинг программы создания и сохранения документа