ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 21.03.2025
Просмотров: 172
Скачиваний: 1
Свойства, методы и события
Все объекты имеют свойства,методыисобытия.
Свойство– этохарактеристикаобъекта. Свойства всегда возвращают некоторое значение, имеют определённый тип (целый, вещественный, строковый, логический, рабочая книга, рабочий лист, диапазон и т.д.) и могут использоваться либо только для получения некоторой характеристики объекта, либо как для получения, так и для изменения характеристики объекта. Рассмотрим для примера некоторые свойства объекта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 – событие, которое происходит при изменении ячейки любого листа рабочей книги.
Иерархия коллекций и объектов
В приложении MicrosoftExcelможно открыть несколько рабочих книг. Каждая рабочая книга содержит несколько листов. Для представления подобных наборов одинаковых объектов используются так называемыеколлекции. При этом каждая коллекция – это тоже объект, который имеет свойства и методы.
Методы коллекции Workbooks, хранящей все открытые рабочие книги, позволяет открывать и закрывать рабочие книги, создавать новую рабочую книгу. Методы других коллекций обычно позволяют добавлять новый объект в коллекцию, удалять объект из коллекции, перемещать и копировать объекты коллекции, выделять объекты коллекции.
Свойства коллекций обычно содержат свойство Count, определяющее количество объектов в коллекции, и свойствоItem, позволяющее выделить один объект из коллекции по номеру или по имени.
Рабочую книгу невозможно открыть, не запустив приложение MicrosoftExcel. Рабочие листы не существуют без рабочей книги. Ячейки не существуют без рабочего листа. Таким образом, объекты и коллекции приложенияMicrosoftExcelобразуютиерархию.
-
Application
-
Workbooks
-
Workbook
-
Charts
-
Chart
Axes
Hyperlinks
Shapes
-
Names
Sheets
Styles
Windows
-
Worksheets
-
Worksheet
ChartObject
Cells
Comments
Hyperlinks
Names
Shapes
-
-
-
Charts
Dialogs
Names
RecentFiles
Sheets
Windows
Worksheets
-
-
Application
AddIns
-
Charts
Axes
Hyperlinks
Shapes
Dialogs
Names
RecentFiles
Sheets
-
Windows
Panes
SelectedSheets
-
Workbooks
Charts
Names
Sheets
Styles
Windows
Worksheets
-
Worksheets
ChartObjects
Scenarios
Comments
Hyperlinks
Names
Shapes
В объектно-ориентированном программировании для обращения к свойствам и методам объектов необходимо записать сначала имя объекта, затем через точку – имя свойства или метода.
Application.Undo
Application.Wait"12:00:00"
Application.WaitNow+TimeValue("0:00:10")
Если свойство представляет собой другой объект, то после него можно также поставить точку и записать имя свойства или метода этого объекта.
Application.Workbooks.Item(1).Close
Application.Workbooks.Item("Книга1.xlsm").Worksheets.Item("Лист2").Activate
Application.Workbooks.Item("Книга1.xlsm").Worksheets.Item("Лист2").Cells(1, 1).Value = 7
Свойство Itemявляется так называемымсвойством по умолчанию, поэтому его имя вместе с предшествующей точкой можно опустить и записать сразу параметр этого свойства. Кроме того, объектApplicationуникален, поэтому его имя также обычно можно опустить. Таким образом, предыдущие операторы можно сократить.
Workbooks(1).Close
Workbooks("Книга1.xlsm").Worksheets("Лист2").Activate
Workbooks("Книга1.xlsm").Worksheets("Лист2").Cells(1, 1).Value = 7
Некоторые полезные свойства объекта Application
При работе в приложении MicrosoftExcelактивной одновременно может быть только одна рабочая книга. В рабочей книге активен только один лист. На рабочем листе активна только одна ячейка, даже если выделен диапазон ячеек. VBA это известно, поэтому можно ссылаться на активные объекты более простым способом.
|
Свойство |
Возвращаемый объект |
|
ActiveWindow |
Активное окно |
|
ActiveWorkbook |
Активная рабочая книга |
|
ActiveSheet |
Активный лист (рабочий лист или лист диаграммы) |
|
ActiveChart |
Активный лист диаграммы или объект диаграммы, если такого листа или диаграммы нет, то свойство равно Nothing |
|
ActiveCell |
Активная ячейка |
|
Selection |
Выделенный объект – Range, ChartObject, Shape и т.д. |
|
ThisWorkbook |
Рабочая книга, содержащая выполняемую процедуру VBA |
Преимущества использования этих свойств объекта Applicationсостоят в том, что можно выполнить некоторые действия не над одним конкретным объектом, а над любым объектом, предварительно выделенным пользователем.
ActiveCell.Value= 1'Записываем в активную ячейку значение 1
ActiveCell.ClearContents'Очищаем активную ячейку
MsgBoxActiveSheet.Name'Выводим имя активного листа
Selection.Value= -5'Заполняем все ячейки выделенного диапазона числом -5
Работа с объектами Range
Работа, которая выполняется с помощью VBA, в основном связана с управлением ячейками и диапазонами на рабочих листах, что является главным предназначением редактора электронных таблиц. Объект Worksheet, представляющий рабочий лист, имеет свойствоRange, возвращающее одноимённый объект, представляющий одну ячейку или диапазон ячеек. Одна ячейка, возвращаемая, например, свойствамиActiveCellилиCells, также является диапазоном – минимально возможным диапазоном.
Задание диапазона
Для задания диапазона используется следующий синтаксис.
объект.Range(ячейка)
объект.Range(ячейка1,ячейка2)
Ячейка– это параметр, идентифицирующий диапазон, аячейка1иячейка2– параметры, очерчивающие диапазон, т.е. они задают левый верхний и правый нижний угол диапазона. При этом под ячейкой может подразумеваться не одна ячейка. Чтобы пояснить сказанное, приведём несколько примеров. Поскольку перед именемRangeничего не стоит, подразумевается диапазон на активном рабочем листе –ActiveSheet.
Range("B5").Select'Выделение одной ячейки B5
Range("A1:D10").Select'Выделение диапазона ячеек от ячейки A1 до ячейки D10
Range("A1", "D10").Select'Аналогично предыдущему примеру
Range("A1:B2", "D10:G12").Select'Выделение диапазона ячеек от ячейки A1 до ячейки G12
Range("A:D").Select'Выделение первых четырёх столбцов рабочего листа
Range("1:10").Select'Выделение первых десяти строк рабочего листа
Range("A:D1:10").Select'Выделение диапазона ячеек от ячейки A1 до ячейки D10. 'Пробел – оператор пересечения диапазонов
Range("A1,D10").Select'Выделение двух несвязанных ячеек A1 и D10.
'Запятая – оператор объединения диапазонов
Свойства объекта Range
|
Свойство |
Описание |
|
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 |
Возвращает или устанавливает значение для диапазона |