Лабораторная работа 6
.pdfОстановкой записи
и нажмите кнопку Оста-
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