Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
лаба вба.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
347.65 Кб
Скачать

Порядок выполнения работы

  1. Изучите теоретическую часть работы.

  2. Добавьте форму в проект, и для кнопки CommandButton1 введите текст событийной процедуры для обработки события Click, позволяющей ввести с клавиатуры элементы массива из нескольких слов. Запустите проект на выполнение.

  3. Добавьте кнопку CommandButton2 и введите текст событийной процедуры для отображения элементов массива. Запустите проект на выполнение.

  4. Добавьте событийную процедуру для поиска слова (использовать функцию InputBox для ввода образца слова при поиске в массиве слов).

  5. Добавьте форму в проект, и для двух кнопок CommandButton создайте две событийные процедуры для: а) заполнения случайными числами массив целого типа, используя функцию Rnd; б) вывода значений массива в окно сообщения.

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

  7. Добавьте событийную процедуру для определения интервала введенного числа (использовать функцию InputBox для ввода числа).

  8. Добавьте форму в проект и создайте событийные процедуры для: а) упорядочивания целых чисел в массиве по убыванию или по возрастанию; б) вывода значений этого массива в окно сообщения; в) обнуления элементов этого массива.

  9. Добавьте форму в проект и создайте событийные процедуры для работы с динамическим массивом: а) заполните двумерный массив шестью элементами; б) переопределите его как таблицу 3х3 с сохранением данных; в) отобразите элементы двумерного массива в окне сообщений, используя функции LBound, Ubound для задания границ массива.

Содержание отчета

  1. Название работы и ее исполнитель.

  2. Цель работы.

  3. Краткое описание выполняемой работы

  4. Выводы.

  5. Приложения с листингом процедур и окнами результатов работы.

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

  1. Что понимается под массивом данных? Какие бывают массивы? Как осуществляется доступ к элементам массива?

  2. Какие функции и операторы для работы с массивами вы знаете, для чего они предназначены?

  3. Для чего предназначены циклы? Какие циклы вы знаете?

  4. Как осуществляется заполнение информацией элементов массива и вывод содержимого его элементов?

  5. Как обеспечивается «ветвление» в программе в зависимости от значения условия?

  6. Чем различается действие операторов 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 – Листинг фрагмента программы

Объект обычно имеет несколько свойств, методов. С помощью оператора WithEnd 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 – Листинг программы создания и сохранения документа

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