Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


Использование свойств объектов



Лабораторная работа № 10

Объекты и коллекции

VBA является идеальным инструментом для изучения основ объектно-ориен­тированного программирования, так как имеет встроенные объекты (рабочие кни­ги и листы, ячейки, документы и выделенные фрагменты текста), их свойства и методы.

Объектно-ориентированное приложение организует данные и выполняемые операторы программного кода в связанные объекты, что облегчает разработку, ор­ганизацию и работу со сложными структурами данных и действиями, выполняе­мыми над этими данными (или с ними). Каждый объект в программном приложе­нии содержит данные и операторы, связанные вместе и образующие единый эле­мент. Большинство приложений содержат много различных типов объектов.

В Excel объектами являются рабочие книги, листы, диапазоны дан­ных, таблицы, графические объекты, диалоговые окна и само приложение Excel.

Как и объекты реального мира, объекты VBA имеют различные присущие им качества или свойства (properties). Объекты в Excel имеют свойства, опре­деляющие их вид и поведение: рабочий лист Excel может быть видимым или нет, строки в рабочем листе или таблице имеют свойство высо­ты, столбцы имеют свойство ширины и так далее.

Свойства регулируют вид и поведение объекта. Чтобы изменить вид и поведе­ние объекта, необходимо изменить его свойства. В Excel можно изменить поведе­ние рабочего листа, изменяя свойство вычисления с автоматического на ручное, или можно изменить вид рабочего листа, задав новый цвет для текста или графики в листе.

Чтобы узнать о текущем виде и поведении объекта, необходимо узнать о его свойствах. Вы можете определить диск, папку и имя рабочей книги Excel рассмотрев свойство FullName этой рабочей книги или документа.

Некоторые свойства объекта можно изменять, некоторые — нет. Например, в рабочей книге Excel можно изменить имя автора книги, изменяя свойство Author, но нельзя изменить свойство Name рабочей книги. (Свойство Name рабо­чей книги содержит имя файла на диске и не может быть изменено без создания нового дискового файла или переименования файла рабочей книги вне Excel).

Некоторые объекты имеют свойства с одними и теми же или подобными име­нами: объекты Application, Workbook и Worksheet в Excel — все имеют свойство Name. Каждый объект рабочего листа сохраняет данные для своих свойств внутри самого рабочего листа вместе с пользовательскими данными. [Пользовательские данные (user data) — это любые данные, сохраняемые объектом, которые поступа­ют непосредственно от пользователя подобно данным, содержащимся в ячейках рабочего листа.]

Объекты реального мира почти всегда имеют тот тип присущего им поведения или действия, который они могут выполнить. Объекты VBA также имеют поведение и возможности, называемые методами (methods). Объект рабочей книги Excel, на­пример, имеет встроенную способность добавлять к себе новый рабочий лист — ме­тод добавления рабочих листов (называемый Add). Другой пример: документ Word имеет встроенную способность проверять орфографию текста в документе — метод проверки орфографии (называемый, как вы могли догадаться, CheckSpelling).

Методы изменяют значения свойств объектов; методы выполняют также дей­ствия с данными (или над данными), сохраняемыми объектом. Методы во многом похожи на процедуры VBA, с которыми вы уже знакомы, но связаны с объектом; к методам объекта можно обратиться, только используя объект. Это может казать­ся сложным, но на деле все проще. Для вызова метода объекта (функции обработки данных объекта) указывается не только наименование метода, но и объект (имя), которому принадлежит метод.

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

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

После того как объект создан (если это — не встроенный объект), нет необхо­димости беспокоиться о том, как работают его методы и как объект сохраняет или манипулирует данными. Все, что нужно знать, — как указать объект и как ука­зать метод, который необходимо использовать (или определенное свойство, кото­рое нужно выбрать и изменить). Встроенный код для объекта VBA выполняет ос­тальную работу автоматически.

Операторы программ VBA, использующие объекты, обычно выполняют одно или несколько из следующих действий:

· определяют текущее состояние или статус объекта путем выборки значения, сохраняемого в определенном свойстве;

· изменяют состояние или статус объекта установкой значения, сохраненного в определенном свойстве;

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

Например, можно определить имя активного в данный момент рабочего листа в Excel, выполняя выборку строки, сохраняемой в свойстве Name рабочего листа. (Свойство Name рабочего листа содержит имя рабочего листа, как показано на яр­лычке листа.) Чтобы изменить имя рабочего листа, необходимо присвоить новую строку свойству Name этого рабочего листа. Для добавления рабочего листа в рабо­чую книгу используется метод Add рабочей книги.

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

В операторах VBA используется следующий общий синтаксис для определения свойства или метода объекта:

< Имя обьекта>.< свойство или метод>

В таблице 1 приведены несколько из наиболее важных объектов (с точки зре­ния программиста VBA) в Excel. В таблице показано имя объекта и краткое описание этого объекта. (Excel содержит намного больше объектов, чем перечислено в табл 1.)

Таблица 1

Объект Описание
Application Само приложение Excel (host-приложение)
Chart Диаграмма в рабочей книге
Font Этот объект содержит атрибуты шрифта и стиля для текста, отображаемого в рабочем листе
Name Заданное имя для диапазона ячеек рабочего листа
Range Диапазон ячеек (одна или более) или именованный диапазон в рабочем листе
Window Любое окно в Excel; окна используются для отображения рабо­чих листов, диаграмм и т.д.
Workbook Открытая рабочая книга
Worksheet Рабочая таблица в книге

Использование свойств объектов

Свойства объектов можно использовать только двумя способами: получать значение свойства или устанавливать его. Следует отметить, что не все свойства объекта изменяемы. Свойства объектов, которые нельзя из­менять, называют свойствами, доступными только на чтение (read-only); свойст­ва, которые можно устанавливать, называют свойствами, доступными на чте­ние/запись (read-write).

Свойства обычно содержат численные, строковые, значения типа Boolean, хотя некоторые свойства могут возвращать значения типа Object или другие типы данных.

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

Чтобы присвоить некоторой переменной значение свойства объекта, исполь­зуйте следующий синтаксис:

Переменная=Обьект.Свойство

Можно также использовать свойство объекта непосредственно в каком-либо выражении или в качестве аргумента функции или процедуры.

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

AnyStr = aSheet.Name

В этом примере строка, сохраняемая в свойстве Name рабочего листа Excel, на которую ссылается объектная переменная aSheet, присваивается пере­менной AnyStr:

MsgBox InstBook.FullName

В приведенном примере InstBook — это переменная, заданная для ссыл­ки на объект открытой рабочей книги. Если InstBook ссылается на рабочую книгу с именем Sales.xls в папке My Documents, то окно сообщения, вызываемое приве­денным выше оператором, отображает строку " C: \My Documents\SALES.XLS".

Чтобы задать свойство объекта, надо присвоить свойству новое значение, ис­пользуя следующий синтаксис:

ИмяОбъекта.Свойство=Выражение

 

Пример изменения свойств объекта

InstSheet.Name = " Первый квартал"

В данном примере изменяется имя рабочего листа, на который ссыла­ется объектная переменная InstSheet, присваивая значение свойству Name листа:

В таблице 2 перечислены некоторые из наиболее употребительных или полез­ных свойств объектов в Excel. В таб­лице представлено имя свойства, тип и значение, а также объекты, которые имеют это свойство.

Таблица 2

Свойство Тип/Что означает Где найти
ActiveCell Object: активная ячейка в рабочем листе Application, Window
ActiveChart Object: активная диаграмма Application, Window, Workbook
ActiveSheet Object: активный лист Application, Window, Workbook
Address Возвращает координаты ячейки указан­ного объекта Range
Cells Диапазон объекта Range Application, Range, Worksheet
Count Integer: число объектов в коллекции Все объекты коллекции
Formula String: формула для ячейки рабочего листа Диапазон
Name String: имя объекта Application, Workbook и в других объектах
Path String: драйвер и каталог, в котором со­хранен объект Addln, Application, Workbook
Saved Boolean: сохранялась ли рабочая книга после последних изменений Workbook
Selection Object: текущий выделенный фрагмент Application, Window
StatusBar String: сообщение в статусной строке Application
ThisWorkBook Object: рабочая книга, из которой вы­полняется текущая процедура Application
Visible Boolean: отображается или нет объект на экране Application, Worksheet, Range и в других объектах
Value (варьируется): действительное значение, отображаемое в ячейке Range

Примеры использования методов объекта

InstBook.Activate

ActiveWorkbook.SaveAs Filename: =" D: \VBA2000\NEWFILE.xls", FileFormat: =xlNormal

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

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

MsgBox myRange.Address

MsgBox myRange.Address(, , xlRlCl)

Метод Addressв Excel (который принадлежит объекту Range ) возвра­щает адрес диапазона ячеек в рабочем листе как строку. Если переменная myRangeссылается на первую ячейку в рабочем листе, то оператор MsgBox в приведенной выше строке примера отображает строку $А$1.

Хотя в этом примере метод Addressвызывается без каких-либо аргументов, он, на самом деле, имеет несколько необязательных аргументов. Эти необязатель­ные аргументы определяют стиль адреса ячеек рабочего листа, возвращаемого ме­тодом, а также, являются ли координаты ячеек абсолютными или относительны­ми. Во втором примере показан вызов метода Addressс его третьим необяза­тельным аргументом (который определяет стиль возвращаемых координат ячеек):

В таблице 3 приведены некоторые из наиболее употребительных или полез­ных методов в Excel. В таблице представлено имя, краткое опи­сание метода и объекты, имеющие этот метод.

Таблица 3

Метод Назначение Имеется в объектах
Activate Активизирует объект Window, Workbook, Worksheet, Range и в других объектах
Calculate Выполняет вычисления в откры­той рабочей книге, рабочем листе или диапазоне Application, Range, Worksheet
Clear Удаляет данные, сохраненные в указанном объекте Range
Close Закрывает указанный объект Window, Workbook, Workbooks
Save Сохраняет файл рабочей книги Application, Workbook
SaveAs Сохраняет указанный объект в другом файле Workbook, Worksheet
Select Выбирает указанный объект Range, Sheets, Worksheets

Многие методы имеют большое количество аргументов. Чтобы получить список параметров метода, можно воспользоваться системой Auto Quick Info. Эта система работает следующим образом: как только вы наберете строку, например

ActiveSheet.SaveAs(
система подсказки выдаст на экран список всех параметров метода SaveAs, как это обычно делается для обычных функций.

Согласно выданному системой Auto Quick Infoвсплывающему окну метод SaveAsимеет довольно много аргументов, хотя все они — необязательные. Если интуитивно вам непонятно назначение параметров какой-либо функции в окне Auto Quick Info, обратитесь за помощью к справочной системе. Для этого либо вы­делите, например, строку ActiveDocument.SaveAsи нажмите клавишу F1.

В справочной системе очень подробно приведено описание каждого метода, и следует почаще прибегать к ее услугам. Впрочем, Редактор VBA постоянно пред­лагает эту помощь в процессе вашей работы с ним.

Объектные переменные

В дополне­ние к типам Byte, Integer, Long, Single, Double и String VBA также имеет тип Object.Переменные или выражения типа Objectссылаются на объект VBA или на объект, принадлежащий приложению, например Excel-объекты Workbook, Worksheet и Range.

Как и в случае с другими типами VBA, можно объявлять переменные в моду­лях, процедурах и функциях с определенным типом Object, что показано в сле­дующем операторе:

Dim myObject As Object

Можно задавать переменную myObject, создаваемую предшествующим опера­тором Dim, чтобы она содержала ссылку на любой объект VBA или объект приложения. Если вы собираетесь использовать переменную типа Objectдля некоторых специфических типов объектов, можно также объявлять объектную пе­ременную для этого специфического типа объекта:

Dim InstBook As Workbook

Объектную переменную InstBook, создаваемую этим оператором Dim, можно использовать только для сохранения ссылок на объекты Workbook; при попытке присвоить переменной InstBookссылку на объект Range или WorksheetVBA ото­бражает сообщение об ошибке несовпадения типов. Аналогично, следующее пред­ложение объявляет объектную переменную, которая может сохранять только объ­екты Document:

Dim InstDoc As Document

Объектное выражение (object expression) — это любое выражение VBA, кото­рое определяет отдельный объект. Все объектные выражения должны вычислять­ся до единственной объектной ссылки {ссылки на объект); объектные выражения используются с единственной целью — создание ссылок на специфические объек­ты в ваших программах VBA.

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

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

Оператор Set имеет следующий синтаксис:

Set Переменная=Объект

Переменная— это любая объектная переменная или переменная типа Variant. Объект — любая допустимая объектная ссылка; это может быть другая объектная переменная или объектное выражение. Если Переменная— переменная, объявленная с каким-либо определенным типом (например, Rangeили Workbook ), этот тип должен быть совместим с объектом, на который ссылается Объект.

Пример использования объектных переменных

Dim InstSheet As Worksheet

Set InstSheet = Application.ActiveSheet

Чтобы задать отдельный объект в выражении или объектную переменную для ссылки на этот объект, используйте методы и свойства, возвращающие объекты, такие как свойства ActiveWorkbook и ActiveSheet объекта Application или метод Cells объекта Worksheet (в Excel). Аналогичные принципы применимы в Word: используйте свойство ActiveDocument объекта Application для получения ссылки на текущий документ и так далее.

Ссылка на объекты с помощью With...End With

При написании кода программы можно встретить ссылку на один и тот же объект в нескольких операторах. VBA предоставляет особую структуру — структуру With...End With, позволяющую ссылаться.на свойства или методы, которые принадлежат одно­му и тому же объекту, без задания всей объектной ссылки каждый раз.

Структура With...End Withимеет следующий синтаксис:

With Object

' операторы, использующие свойства и методы Object

End With

Object — это любая допустимая объектная ссылка.

Пример использования струк­туры With...End With.

Задание 1

Написать макрос, который открывает книгу “Сотрудники”, создает новую книгу “Копия” и копирует из книги “Сотрудники” лист “Штат” после первого листа книги “Копия”.

Предполагается, что книга “Сотрудники” находится в той же папке, что и файл с книгой, содержащей макрос.

Задание 2

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

Обработчики событий

Событие — это действие, распознаваемое объектом, для которого можно запрограммировать отклик.

Например, в качестве события можно использовать открытие или закрытие документа, щелчок мыши, нажатие клавиши.

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

Обработать можно события следующих обьектов Excel:

  • Application
  • WorkBook
  • WorkSheet
  • Chart

Обработчики событий дают возможность привязать свой код к действиям пользователя, например к открытию или закрытию книги, активации таблицы, сохранению документа... Обработчики событий создаются с модулях лисов или книги (в зависимости от того, с каким объектом будет связано это событие. Чтобы создать процедуру обработки события, откройте редактор Visual Basic (Alt + F11), выберите например Лист1 и из двух раскрывающихся списков сверху выберите объект и событие. Редактор автоматически создаст процедуру для обработки события. Вам остается только написать в ней свой код (см. рисунок).

Однако в некоторых ситуациях события для объектов не появляются в окне редактора кода (например, это справедливо для очень важного объекта Application). В этом случае необходимо явно объявить этот объект с событиями — при помощи ключевого слова WithEvents, например так:

Public WithEvents App As Word.Application

Делается это в области объявлений модуля (Declarations). После этого в редакторе кода Visual Basic появляется новый объект App со всеми необходимыми событиями.

 

Многие события имеют параметры. Это выглядит вот так:

Private Sub Worksheet_BeforeRightClick(ByVal Target As Excel.Range, Cancel As Boolean)
......
End Sub

Здесь Target - диапазон ячеек, подвергшийся процедуре правого клика, Cancel - параметр, позволяющий отменить событие, если установить его в True.

События объекта Application

Событие Описание
NewWorkbook При создании новой рабочей книги
WorkbookActivate При активизации рабочей книги
WorkbookBeforeClose Перед закрытием рабочей книги
WorkbookBeforeSave Перед сохранением рабочей книги
WorkbookDeactivate Когда активная книга теряет фокус
WorkbookNewSheet При добавлении нового листа в рабочую книгу
WorkbookOpen При открытии рабочей книги

События объекта Workbook

Событие Описание
BeforeClose При закрытии рабочей книги
BeforeSave Перед сохранением рабочей книги
Deactivate Когда рабочая книга теряет фокус
NewSheet При добавлении нового листа
Open При открытии рабочей книги
SheetActivate При активизации любого рабочего листа
SheetDeactivate Когда рабочий лист теряет фокус

События объекта Worksheet

Событие Описание
BeforeClose При закрытии рабочей книги
BeforePrint Перед печатью рабочей книги
BeforeSave Перед сохранением рабочей книги
Deactivate Когда рабочая книга теряет фокус
NewSheet При добавлении нового листа
Open При открытии рабочей книги
SheetActivate При активизации любого рабочего листа
Sheet Deactivate Когда рабочий лист теряет фокус

 

Задание 3

При открытии книги открывать файл Макросы.xls.

 

Задание 4

При активации “Лист4” и “Лист5” сделать видимым “Лист5”. При активации других листов “Лист5” становится невидимым.

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

 

Задание 5

При активации “Листа 3” запрашивать пароль. Если пароль правильный, строки отображаются и с листа снимается защита. Если пароль не совпадает со значением в ячейке AH1 этого листа, оставить скрытыми все строки и защищенным лист.

Проверить корректность работы программы и исправить ошибки.

После работы с листом надо привести Лист 3 в первоначальное состояние, т.е. скрыть строки и защитить лист. Для этого надо использовать событие деактивации листа.

Задание 6

Если на листе поместить курсор в ячейку H6 Лист очищается.

 

Задания для самостоятельной работы

Вариант № 1

1. Создать книгу под именем Данные.xls. В этой книге создать таблицу с 2 столбцами – ФИО, Должность и 4 строками. Написать макрос, который открывает эту книгу и после последней строки дописывает Вашу фамилию.

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

 

 

Вариант № 2

1. Написать макрос, который создает новую книгу. Запрашивает имя этой книги и дает такое же имя первому листу этой книги.

2. Создать обработчик в котором при открытии книги все листы сортируются в обратном порядке.

 

 

Вариант № 3

1. Написать макрос, который создает новую книгу под именем Итоги.xls и изменяте названия ее листов на 1, 2 и 3.

2. Создать обработчик, в котором при изменении данный в ячейке F3 этот лист перемещается в конец.

 

 

Вариант № 4

1. Создать книгу под именем Пример.xls. В этой книге создать таблицу с 2 столбцами – Должность и Оклад, заполнить в этой таблице 3 строки. Написать макрос, который открывает эту книгу и копирует лист с этой таблицей в книгу, содержащую данный макрос.

2. Создать обработчик, в котором при изменении данных в последней заполненной ячейке столбца B эта ячейка окрашивается черным цветом. После выхода из этой ячейки возвращается в прежнее состояние.

 

Вариант № 5

1. Написать макрос, который создает новую книгу. Запрашивает имя этой книги, а затем добавляет в конец этой книги еще 3 листа.

2. Создать обработчик, в котором при перемещении на лист 4 создается новый лист и в ячейке A1 нового листа появляется слово «Привет».

 

Вариант № 6

1. Написать макрос, который создает новую книгу под именем Листы.xls и удаляет 1 и 3 листы этой книги и добавляет в начало новый лист.

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

 

Вариант № 7

1. Создать книгу под именем Проба.xls. В этой книге создать таблицу с 2 столбцами – Должность и Оклад, заполнить в этой таблице 3 строки. Написать макрос, который открывает эту книгу и копирует лист с этой таблицей в новую книгу.

2. Создать обработчик, в котором при создании нового листа этот лист получает в названии индекс этого листа.

 

Вариант № 8

1. Создать книгу под именем Данные.xls. В этой книге создать таблицу с 2 столбцами – ФИО, Должность и 4 строками. Написать макрос, который открывает эту книгу и после последней строки дописывает Вашу фамилию.

2. Создать обработчик, в котором при открытии книги первый и второй лист скрываются, а при активизации Листа 3 они снова отображаются.

 

Вариант № 9

1. Написать макрос, который создает новую книгу. Запрашивает имя этой книги и дает такое же имя первому листу этой книги.

2. Создать обработчик, в котором на Листе 3при изменении данных ячейке A1 весь лист становится черным, при уходе с Листа 3 все возвращается в первоначальное состояние.

 

Вариант № 10

1. Написать макрос, который создает новую книгу под именем Итоги.xls и изменяет названия ее листов на 1, 2 и 3.

2. Создать обработчик, для Листа 2в котором при перемещении в любую ячейку столбца D этот столбец скрывается. При уходе с листа столбец открывается

 

Вариант № 11

1. Создать книгу под именем Пример.xls. В этой книге создать таблицу с 2 столбцами – Должность и Оклад, заполнить в этой таблице 3 строки. Написать макрос, который открывает эту книгу и копирует лист с этой таблицей в книгу, содержащую данный макрос.

2. Создать обработчик, в котором при активации листа ширина столбцов с A до H становится равным 1 символ. При уходе с листа ширина этих столбцов становится равной 8 символов.

 

Вариант № 12

1. Написать макрос, который создает новую книгу. Запрашивает имя этой книги, а затем добавляет в конец этой книги еще 3 листа.

2. Создать обработчик, в котором при изменении данных в 10 ряду. Шрифт во всем ряду становится белого цвета. При ухода курсора из этого ряда шрифт становится черным.

 

ПРИЛОЖЕНИЕ

ОБЪЕКТ APPLICATION

Объект Application - это главный (корневой) объект в иерархии объектов Excel, представляющий само приложение Excel. Он имеет огромное число свойств и методов, позволяющих установить общие параметры приложения Excel. Кроме того, объект Application через свойство WorksheetFunction предоставляет возможность использовать в коде все встроенные функции рабочего листа. Это семейство возвращает WorksheetFunction объект, являющийся контейнером всех функций рабочего листа. Например, в следующем примере находится максимальное знчение из диапазона А1: А4:

Макс=Application.WorksheetFunction. Max(Range(" А1: А4" ))

Функции рабочего листа можно включать в код непосредственно через объект Application, опуская свойство WorksheetFunction. Например, в следующем примере переменной Pi присваивается значение Пи, а переменной Сумма присваивается значение суммы из диапазона А1: А4:

Pi = Application.Pi()

Сумма = Application.Sum(Range(" A1: А4" ))

МЕТОДЫ ОБЪЕКТА APPLICATION

Метод Описание
Calculate Вызывает принудительное вычисление во всех открытых рабочих книгах, или специфицированном рабочем листе или диапазоне. В следующем примере первая инструкция приводит к перерасчету во всех открытых книгах, вторая инструкция - к перерасчету на указанном рабочем листе активной рабочей книге, а третья - в указанном диапазоне: - Application.Calculate - Worksheets(" Отчет" ).Calculate - Worksheets(" Отчет " ).Range(" A1: C10" ).Calculate
Help Отображает справку. Синтаксис: Help(HelpFile, HelpContextID) - HelpFile - имя HLP-файла. Если значение этого параметра не указано, то отображается файл справки Microsoft Excel; - HelpContextID - номер раздела справки. Если значе ние этого параметра не указано, то отображается оглав ление справки. Application.Help " Notepad.hip"
Volatile Вызывает перевычисление функции пользователя при изменениях в ячейках рабочего листа. Например, Function Квадрат(х) Application.Volatile Квадрат = х^2 End Function
OnKey Устанавливает выполнение специфицированной процедуры при нажатии заданной комбинации клавиш.

ОБЪЕКТ WORKBOOK И СЕМЕЙСТВО WORKBOOKS

В иерархии Excel объект Workbook идет сразу после объекта Application и представляет файл рабочей книги. Рабочая книга хранится либо в файлах формата XLS (стандартная рабочая книга) или XLA (полностью откомпилированное приложение). Свойства и методы рабочей книги позволяют работать с файлами.

Лабораторная работа № 10

Объекты и коллекции

VBA является идеальным инструментом для изучения основ объектно-ориен­тированного программирования, так как имеет встроенные объекты (рабочие кни­ги и листы, ячейки, документы и выделенные фрагменты текста), их свойства и методы.

Объектно-ориентированное приложение организует данные и выполняемые операторы программного кода в связанные объекты, что облегчает разработку, ор­ганизацию и работу со сложными структурами данных и действиями, выполняе­мыми над этими данными (или с ними). Каждый объект в программном приложе­нии содержит данные и операторы, связанные вместе и образующие единый эле­мент. Большинство приложений содержат много различных типов объектов.

В Excel объектами являются рабочие книги, листы, диапазоны дан­ных, таблицы, графические объекты, диалоговые окна и само приложение Excel.

Как и объекты реального мира, объекты VBA имеют различные присущие им качества или свойства (properties). Объекты в Excel имеют свойства, опре­деляющие их вид и поведение: рабочий лист Excel может быть видимым или нет, строки в рабочем листе или таблице имеют свойство высо­ты, столбцы имеют свойство ширины и так далее.

Свойства регулируют вид и поведение объекта. Чтобы изменить вид и поведе­ние объекта, необходимо изменить его свойства. В Excel можно изменить поведе­ние рабочего листа, изменяя свойство вычисления с автоматического на ручное, или можно изменить вид рабочего листа, задав новый цвет для текста или графики в листе.

Чтобы узнать о текущем виде и поведении объекта, необходимо узнать о его свойствах. Вы можете определить диск, папку и имя рабочей книги Excel рассмотрев свойство FullName этой рабочей книги или документа.

Некоторые свойства объекта можно изменять, некоторые — нет. Например, в рабочей книге Excel можно изменить имя автора книги, изменяя свойство Author, но нельзя изменить свойство Name рабочей книги. (Свойство Name рабо­чей книги содержит имя файла на диске и не может быть изменено без создания нового дискового файла или переименования файла рабочей книги вне Excel).

Некоторые объекты имеют свойства с одними и теми же или подобными име­нами: объекты Application, Workbook и Worksheet в Excel — все имеют свойство Name. Каждый объект рабочего листа сохраняет данные для своих свойств внутри самого рабочего листа вместе с пользовательскими данными. [Пользовательские данные (user data) — это любые данные, сохраняемые объектом, которые поступа­ют непосредственно от пользователя подобно данным, содержащимся в ячейках рабочего листа.]

Объекты реального мира почти всегда имеют тот тип присущего им поведения или действия, который они могут выполнить. Объекты VBA также имеют поведение и возможности, называемые методами (methods). Объект рабочей книги Excel, на­пример, имеет встроенную способность добавлять к себе новый рабочий лист — ме­тод добавления рабочих листов (называемый Add). Другой пример: документ Word имеет встроенную способность проверять орфографию текста в документе — метод проверки орфографии (называемый, как вы могли догадаться, CheckSpelling).

Методы изменяют значения свойств объектов; методы выполняют также дей­ствия с данными (или над данными), сохраняемыми объектом. Методы во многом похожи на процедуры VBA, с которыми вы уже знакомы, но связаны с объектом; к методам объекта можно обратиться, только используя объект. Это может казать­ся сложным, но на деле все проще. Для вызова метода объекта (функции обработки данных объекта) указывается не только наименование метода, но и объект (имя), которому принадлежит метод.

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

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

После того как объект создан (если это — не встроенный объект), нет необхо­димости беспокоиться о том, как работают его методы и как объект сохраняет или манипулирует данными. Все, что нужно знать, — как указать объект и как ука­зать метод, который необходимо использовать (или определенное свойство, кото­рое нужно выбрать и изменить). Встроенный код для объекта VBA выполняет ос­тальную работу автоматически.

Операторы программ VBA, использующие объекты, обычно выполняют одно или несколько из следующих действий:

· определяют текущее состояние или статус объекта путем выборки значения, сохраняемого в определенном свойстве;

· изменяют состояние или статус объекта установкой значения, сохраненного в определенном свойстве;

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

Например, можно определить имя активного в данный момент рабочего листа в Excel, выполняя выборку строки, сохраняемой в свойстве Name рабочего листа. (Свойство Name рабочего листа содержит имя рабочего листа, как показано на яр­лычке листа.) Чтобы изменить имя рабочего листа, необходимо присвоить новую строку свойству Name этого рабочего листа. Для добавления рабочего листа в рабо­чую книгу используется метод Add рабочей книги.


Поделиться:



Популярное:

Последнее изменение этой страницы: 2016-08-31; Просмотров: 1565; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.152 с.)
Главная | Случайная страница | Обратная связь