Объектная модель VBA. Иерархия объектов и коллекция. 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Объектная модель VBA. Иерархия объектов и коллекция.



Типы иерархий, работа с объектами Range.

 

В объектно-ориентированной программе обычно создаётся класс – обобщенное описание некоторого предмета, затем создаются объекты этого класса, и программа работает с этими объектами.

Все объекты имеют свойства, методы и события.

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

Рассмотрим для примера некоторые свойства объекта Workbook – рабочая книга.

· Name – свойство представляет собой строку, содержащую имя рабочей книги, например, Книга1. xlsx. Изменить это свойство нельзя.

· FullName – свойство представляет собой строку, содержащую полный путь и имя рабочей книги, например, D:\Документы\ Книга1. xlsx. Изменить это свойство нельзя.

· Date1904логическое свойство, значение которого равно True, если рабочая книга использует систему дат 1904 года, и значение False в противном случае. С помощью языка VBA можно изменить это свойство и, соответственно, используемую систему дат.

· ActiveSheet – свойство, определяющее активный рабочий лист книги. Является ссылкой на объект Worksheet – рабочий лист. Изменить это свойство нельзя. Однако это не значит, что с помощью языка VBA нельзя изменить активный рабочий лист. Просто для этого используются другие инструменты.

 

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

· Close – закрытие рабочей книги.

· Save – сохранение рабочей книги.

· SaveAs – сохранение рабочей с другим именем или в другом формате.

· Protect – защита рабочей книги.

· Unprotect – отмена защиты рабочей книги.

Большинство объектов распознают так называемые события, т.е. изменения в состоянии этого объекта. Для каждого события можно написать процедуру на языке VBA, которая будет выполняться при наступлении этого события. Рассмотрим для примера некоторые события объекта Workbook.

· Open – событие, которое происходит при открытии рабочей книги.

· NewSheet – событие, которое происходит при добавлении нового листа в рабочую книгу.

· SheetChange – событие, которое происходит при изменении ячейки любого листа рабочей книги.

 

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

 

 

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

В объектно-ориентированном программировании для обращения к свойствам и методам объектов необходимо записать сначала имя объекта, затем через точку – имя свойства или метода.

Workbooks(1).Close

Workbooks("Книга1.xlsm").Worksheets("Лист2").Activate

Workbooks("Книга1.xlsm").Worksheets("Лист2").Cells(1, 1).Value = 7

Свойство Возвращаемый объект
ActiveWindow Активное окно
ActiveWorkbook Активная рабочая книга
ActiveSheet Активный лист (рабочий лист или лист диаграммы)
ActiveChart Активный лист диаграммы или объект диаграммы, если такого листа или диаграммы нет, то свойство равно Nothing
ActiveCell Активная ячейка
Selection Выделенный объект – Range, ChartObject, Shape и т.д.
ThisWorkbook Рабочая книга, содержащая выполняемую процедуру VBA

 

Свойство Описание
Address Возвращает строку, содержащую ссылку на диапазон
Cells Позволяет выделить ячейку диапазона по относительному номеру строки и номеру столбца
Columns Возвращает объект Range, представляющий столбцы диапазона
ColumnsWidth Возвращает или устанавливает ширину столбцов диапазона
Count Возвращает количество объектов в коллекции
Formula Возвращает или устанавливает формулу ячейки в формате A1
FormulaLocal Возвращает или устанавливает формулу ячейки в формате A1 на языке пользователя
FormulaR1C1 Возвращает или устанавливает формулу ячейки в формате R1C1
FormulaR1C1Local Возвращает или устанавливает формулу ячейки в формате R1C1 на языке пользователя
HasFormula Свойство принимает значение True, если все ячейки диапазона содержат формулы, значение False, если ни одна ячейка не содержит формулу, и значение null в противном случае
MergeCell Свойство принимает значение True, если диапазон находится внутри объединённых ячеек
Name Возвращает или устанавливает имя диапазона
NumberFormat Возвращает или устанавливает числовой формат для ячеек диапазона
Offset Возвращает объект Range, который смещен от текущего на указанное количество строк и столбцов
RowHeight Возвращает или устанавливает высоту строк диапазона
Rows Возвращает объект Range, представляющий строки диапазона
Value Возвращает или устанавливает значение для диапазона

 

Метод Описание
Activate Активация указанной ячейки
Clear Очистка диапазона (и содержимое, и формат)
ClearContents Очистка содержимого диапазона
ClearFormats Очистка формата диапазона
Copy Копирование диапазона в буфер обмена или другой диапазон
CreateNames Создание имён для диапазона на основе текстовых данных
Cut Вырезание диапазона (в буфер обмена) или вставка диапазона в другой
Merge Объединение диапазона в одну ячейку
Select Выделение диапазона
Sort Сортировка ячеек диапазона
Speak Озвучивание содержимого ячеек диапазона
UnMerge Разделение объединённой ячейки

 

 

Вопрос 10.

Основные понятия языка VBA.

Типы данных, переменные и константы, массивы и объектные переменные.

 

Тип является характеристикой переменной, которая определяет:

· какие данные могут храниться в переменной;

· какие операции могут выполняться над переменной;

· размер ячейки памяти для переменной.

 

Тип Хранимые данные Операции
Boolean Логические значения True и False Логические – not, and, or
Byte Целые числа в диапазоне 0..255

Арифметические – -, ^, *, /, \, mod, +, -

Отношения – =, <>, >, >=, <, <=

Integer Целые числа в диапазоне -32768..32767
Long Целые числа в диапазоне -2147483648..2147483647
Single Вещественные числа, от -3.402823E38 до -1.401298E-45 для отрицательных значений и от 1.401298E-45 до 3.402823E38 для положительных значений
Double Вещественные числа, от -1.79769313486231E308 до -4.94065645841247E-324 для отрицательных значений и от 4.94065645841247E-324 до 1.79769313486232E308 для положительных значений
Currency Вещественные числа в диапазоне от -922,337,203,685,477.5808 до 922,337,203,685,477.5807
Date Значения даты и времени в диапазоне от 1 января 100 года до 31 декабря 9999 года Арифметические (вычитание) DateAdd DateDiff DatePart DateValue
String Строки длиной до 2 млрд. символов Конкатенация – & Отношения
Variant Значения любого типа Зависит от реального типа данных

 

Dim v As Variant

v = 46.7

MsgBox VarType(v)            '5

MsgBox TypeName(v)           'Double

If VarType(v) = vbDouble Then ‘end function

...

 

Переменные типа Variant могут также хранить ряд специальных значений, таких как Empty (ничего не присвоено), Null (некорректные данные) и Error (признак ошибки). Чтобы создать подобный признак ошибки используется функция CVErr, получающая в качестве аргумента номер ошибки.

Константа Номер Ошибка
xlErrDiv0 2007 #ДЕЛ/0!
xlErrNA 2042 #Н/Д
xlErrName 2029 #ИМЯ?
xlErrNull 2000 #ПУСТО!
xlErrNum 2036 #ЧИСЛО!
xlErrRef 2023 #ССЫЛ!
xlErrValue 2015 #ЗНАЧ!

 

· Переменные

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

· Константы

Если некоторое значение используется несколько раз, лучше не вставлять его в несколько инструкций, а объявить в виде константы. Такое объявление позволит, во-первых, задать значению символическое имя, что улучшит читабельность программы, а во-вторых, упростит изменение значения – новое значение необходимо будет ввести только один раз.

Const <имя> [ As <тип>] = <значение>

 

· Массив – это переменная, состоящая из нескольких элементов одного типа, для доступа к которым используется один или несколько индексов.

Dim <имя> (<начальный индекс> To <конечный индекс>) As <тип>

Dim a (1 To 100) As Integer

 

Динамические массивы – это массивы, которые не имеют предопределённого количества элементов.

 

· Объектная переменная – это переменная, представляющая собой объект VBA, например, диапазон или рабочий лист. Объектные переменные важны по следующим причинам:

· они упрощают программу;

· они ускоряют выполнение программы.

Объектные переменные объявляются так же, как и обычные, – с помощью оператора Dim. Для присваивания объекта переменной необходимо использовать оператор Set.

Dim MyCell As Range

Set MyCell = Worksheets("Лист1").Range("A1")

MyCell.Value = 125

MyCell.Font.Bold = True

MyCell.Font.Italic = True

MyCell.Font.Size = 14

MyCell.Font.Name = Cambria

 

Вопрос 11.



Поделиться:


Последнее изменение этой страницы: 2019-08-19; просмотров: 505; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.149.26.176 (0.025 с.)