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

Лабораторная работа 6

.pdf
Скачиваний:
22
Добавлен:
11.02.2015
Размер:
473.87 Кб
Скачать

Остановкой записи

и нажмите кнопку Оста-

6.Для выполнения макроса достаточно активизировать клавиши Ctrl+m или вызвать диалоговое окно Макрос (Вид® Макрос ® Макросы) и

выбрать макрос МГТУ.

7.Для просмотра или редактирования макроса выполните команду

Вид® Макрос ® Макросы, в диалоговом окне выбрать макрос МГТУ и на-

жать кнопку Изменить. Другой вариант просмотра кода макроса – это вы-

полнить команду Сервис ® Макрос ® Редактор Visual Basic (Alt+F11).

Текст получившегося макроса:

Sub МГТУ()

'

'МГТУ Макрос

'Ввод фразы осуществляется в текущую

'ячейку таблицы

'Сочетание клавиш: Ctrl+m

ActiveCell.FormulaR1C1 = "МГТУ им. Г. И. Носова" Range("A2").Select ‘Активизация ячейки A2 (необязательная строка)

End Sub

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

10.4.Задания второго уровня

1.Автоматизировать работу по созданию в Microsoft Excel бланка документа согласно варианту в задании 1 лабораторной работы 3.

10.5.Объектные модели Microsoft Word и Microsoft Excel

Программирование в Visual Basic реализуется на основе объектно-ори- ентированного программирования (ООП) и его применения в Excel и Word.

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

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

строго определенным интеротладке, сопровождении и его замкнутость, придакоде модуля окажут влия-

ния только на функции этого модуля и ни на что другое.

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

Другими словами, программный объект (контейнер) – это блок, состоящий из кода и данных.

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

Общими примерами объектов Visual Basic и Excel служат таблицы, области ячеек, командные кнопки, текстовые окна, рабочие папки, диаграммы и модули. Программный объект обладает определенными свойствами и методами.

Свойства - это видимые характеристики объекта. Методы - это операции преобразования этих данных.

Видимые характеристики – это данные, которые могут быть доступны вне объекта. Свойствами считаются данные, которыми объект манипулирует или которые позволяют контролировать, как выглядит объект или как он себя ведет. Например, свойство Value текстового окна – это текст, который вводится в окно.

Когда выполняется метод, он может изменить значения лишь свойств данного объекта, но не других объектов. Метод может только запросить ка- кой-нибудь объект об изменении некоторого свойства.

Вызвать объект, также как процедуру невозможно. Для изменения свойства объекта или выполнения одного из методов, объекту следует послать сообщение. Например, для выполнения операции над данными объекта указывается

Имя объекта. Метод

а для изменения некоторого свойства

Имя объекта. Свойство=значение

Пусть имя объекта Power, который имеет свойство Value, тогда возможно изменение этого свойства с помощью инструкции:

Power. Value = 3 ‘Свойство Value –значение – будет равно 3

либо запоминание значения характеристики объекта в переменной

X = Power. Value ‘В переменную x помещается значение свойства value.

Объект

Application

(приложение)

Workbook(index)

(рабочая книга)

Worksheets(index)

(рабочий лист)

Range(“диапазон”)

(интервал) Cells(строка, столбец) (ячейка)

Объект

Application

(приложение)

Document(index)

(документ)

Range

разнообразных объектов в VBA. практически на каждом шагу.

и для Word в табл. 6.5.

Таблица 6.4

Объекты VBA в MS Excel

Описание объекта

Этот объект представляет собой само приложе-

ние Excel, в целом включает в себя все встроенные функции MS Excel.

Определяет состояние рабочей книги, например,

является ли она открытой для чтения, или какой из методов является активным в настоящий момент. Этому же классу принадлежит объект ActiveWorkBook – представляет активную в настоящий момент книгу.

Объект используется при копировании или уда-

лении рабочих листов, их скрытии или показе, проведение вычислений для формул рабочего листа. Этому же классу принадлежит объект ActiveWorkSheet – это объект, который представляет собой активный в настоящее время рабочий лист.

Объект этого класс позволяет изменять свойства

интервала ячеек, например, используемый шрифт, проверять или изменять содержимое ячеек, вырезать или копировать интервал и т. д. Это наиболее часто используемый класс объектов. К этому же классу относятся объекты:

ActiveСell – активная ячейка. Отдельно взятая ячейка представляет собой частный случай

Range.

Таблица 6.5

Объекты VBA в MS Word

Описание объекта

Этот объект представляет собой само приложе-

ние Word.

Открытый документ. Разновидность объекта:

ActiveDocument – активный документ в настоящий момент времени.

Объект представляет собой непрерывную область

документа. Существует объект только в период

 

объекта

 

в которой он определен.

 

слово документа

 

символ документа

Sentences(index)

Объект представляет собой предложение

Paragraphs(index)

Объект представляет собой абзац документа

Иерархия программных объектов для MS Excel и MS Word приведены на рис. 6.6 и 6.7.

Рис. 6.6. Объектная модель Excel

Рис. 6.7. Объектная модель Word

Как уже было сказано, каждый объект имеет целый ряд присущих ему характеристик или свойств. Некоторые из них приведены в табл. 6.6.

Таблица 6.6

Свойства некоторых объектов VBA

Объект

Свойство

Описание

Application

ActiveWindow

Активное окно

 

ActiveWorkBook

Активная рабочая книга

 

ScreenUpdating

Режим обновления экрана при изме-

 

 

нениях

 

StandardFont

Имя стандартного шрифта для новых

 

 

рабочих листов

WorkBook

ActiveSheet

Активный рабочий лист

 

FullName

Полное имя рабочей книги, включая

 

 

путь

 

Name

Имя рабочей книги.

 

Saved

Признак того, что состояние рабочей

 

 

Описание

 

 

 

сохранено на диске (имеет

 

 

False, если в книге сделаны

Worksheets

Name

Имя рабочего листа

 

 

Previons

Предыдущий рабочий лист

 

 

ProtectContents

Режим защиты содержимого

ячеек

 

 

рабочего листа.

 

 

Visible

Режим видимости рабочего

листа

 

 

(скрыт или показан).

 

Range

Font

Используемый в интервале шрифт

 

Formula

Формула интервала

 

 

Name

Имя интервала

 

 

Value

Значение ячейки

 

Приведем несколько примеров, в которых показано как определяются (устанавливаются свойства объектов):

1) установить в активной ячейке шрифт размером в 14 пт

ActiveCell.Font.Size=14

где Size – свойство объекта Font;

2) установление в активной ячейке шрифта с названием Courier New Cyr

ActiveCell.Font.Name = «Courier New Cyr»

где Name – свойство объекта Font;

-установление в активной ячейке для шрифта начертание – курсив

ActiveCell.Font.Italic=True

Кроме того, каждый объект имеет присущие ему методы. Метод – описывает действие, которое можно совершить над объектом. Некоторые из методов над объектами MS Excel представлены в табл. 6.7.

 

 

Таблица 10.7

 

Таблица некоторых методов объектов VBA

Объект

Метод

Описание

Application

Quit

Завершение MSExsel

 

Undo

Отменяет последнее выполнение

 

 

действия

Workbook

Activate

Активизирует рабочую книгу.

 

Close

Закрывает рабочую книгу.

 

Save

Сохраняет рабочую книгу.

 

SaveAs

Сохраняет рабочую книгу под дру-

 

 

гим именем.

Worksheet

Activate

Активизирует рабочий лист.

 

Calculate

Заново вычисляет значение рабочего

 

 

листа.

 

 

Описание

 

 

рабочий лист.

 

 

рабочий лист.

 

 

защиту рабочего листа.

Range

Clear

Полностью очищает интервал с фор-

 

 

матированием.

 

ClearContents

Очищает содержимое ячейки.

 

ClearFormats

Очищает форматирование ячейки.

 

Offset

Возвращает интервал, с указанным

 

 

смещением относительно первона-

 

 

чального интервала

 

Select

Выделяет интервал

Рассмотрим решение нескольких задач.

Пример 6.5

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

Решение

Sub Info()

'Подсчет количества листов и результат помещается в B1 Worksheets("Лист1").Range("B1").Value =Worksheets.Count 'Определяет имя активной книги и помещается в B2 Worksheets("Лист1").Range("B2").Value=ActiveWorkBook.FullName 'Определяет имя третьего листа книги и помещает в B3. Worksheets("Лист1").Range("B3").Value = Worksheets(3).Name

End Sub

Пример 6.6

Записать процедуру для заполнения интервала ячеек числами: в ячейку В1 поместить число – 1; в интервал В7:С9 – число 2; в интервалы D11:D12 и D15:E17 – число 3.

Решение

Sub Primer_Range()

' Доступ к единичной ячейке. Worksheets("Лист1").Range("B1").Value = 1 'Доступ к смежным ячейкам

Worksheets("Лист1").Range("B7:C9").Value = 2 'Доступ к несмежным интервалам

Worksheets("Лист1").Range("D11:D12, D15:E17").Value = 3

End Sub

Одними из основных объектов Microsoft Excel являются рабочая книга и рабочий лист.

Microsoft Excel, фактически

. Для работы с рабочей WorkBook или набора

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

Пример 6.7

Записать процедуру создания новой рабочей книги.

Решение

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

I способ:

Sub CreatNewBook() Workbooks.Add

End Sub

При выполнении этой процедуры создается новая книга, обращение к которой можно выполнить по ее индексному номеру. Например, WorkBooks(2).WorkSheets… Индексные номера устанавливаются в порядке открытия файлов.

II способ:

Sub CreatNewBook1()

Set NewBook=Workbooks.Add

End Sub

Параллельно с созданием рабочей книги создается пользовательский объект, к которому можно выполнить обращение как к объекту того же клас-

са, что и WorkBooks. Например, NewBook.WorkSheets…

Пример 6.8

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

Решение ‘Открытие файла с указанием полного пути без создания пользовательского объекта

Sub OpenBook()

Workbooks.Open FileName:=”D:\Мои документы\Книга1.xls”

End Sub

В данной процедуре: FileName – параметр метода Open, определяющий имя открываемого файла. Недостатком такой процедуры является указание полного пути и полного имени файла.

‘Открытие файла с созданием объекта и автоматическим определением пути каталога для запуска приложения

Sub OpenBook1()

PathSeparator

:= Fname)

В данной процедуре: ExePath, Fname – переменные для определения и построения пути; Application. Path – определяет путь к расположению файла

Excel.exe; Application. Separator – свойство приложения, возвращающее раз-

делитель в строке пути, корректный для данной операционной системы; & – операция склеивания строк.

Другое безопасное место хранения файлов – это каталог Library, в этом случае вместо свойства Path используется свойство LibraryPath для объекта

Application.

Пример 6.9

Записать процедуру сохранения текущей рабочей книги.

Решение

Sub SaveBook()

MyBook. SaveAs FileName:=”D:\Мои документы\Книга1.xls”, _ FileFormat:=xlFormat, Password:= “”, WriteResPassword:= “”, _ ReadOnlyRecommended:=False, CreatrBackup:=False

End Sub

В процедуре использован метод класса WorkBooks для сохранения книги SaveAS (сохранить как), который имеет следующие параметры: FileName – имя файла для сохранения с указанием полного пути доступа; FileFormat – формат сохранения файла (xlWQ1, xlWK1, … - всего 37 форматов);

Password:= “”, WriteResPassword:= “” – пароль открытия и записи файла; ReadOnlyRecommended – указание на открытие файла только для чтения; CreatrBackup – указание на создание резервной копии при повторном сохранении.

Пример6.10

Записать процедуру на закрытие файла.

Решение

Sub CloseBook() WorkBook(2). Close

End Sub

При решении задачи используется метод Close (закрытие) класса

WorkBook.

Аналогичным образом производиться работа и документом в редакто-

ре MS Word.

Пример 6.11

Записать процедуру сохранения активного документа.

End Sub

Пример 6.12

Записать процедуру для печати активного документа.

Решение

Sub Печать()

'Печать активного документа

ActiveDocument.PrintOut

End Sub

Пример 6.13

Записать процедуру для выделения первых двух абзацев в тексте документа.

Решение

Sub p1()

Set aRange = ActiveDocument.Range(Start:=0, _

End:=ActiveDocument.Paragraphs(2).Range.End) aRange.Select

End Sub

В ходе выполнения процедуры создается объект aRange, начиная с нулевого символа текущего документа, и, заканчивая окончанием второго абзаца документа.

Пример 6.14

Записать процедуру, которая заменяет первое слово документа на слово «Привет».

Решение

Sub p2()

ActiveDocument.Words(1).Text = "Привет!"

End Sub

Пример 6.15

Записать процедуру, с помощью которой для первого абзаца устанавливается шрифт Times New Roman размеров в 14 пт и все буквы прописные.

Решение

Sub p3()

With ActiveDocument.Paragraphs(1).Range.Font

.Name = "Times New Roman"

.Size = 14

.AllCaps = True

End With