ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 21.03.2025

Просмотров: 172

Скачиваний: 1

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
  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 – событие, которое происходит при изменении ячейки любого листа рабочей книги.


  1. Иерархия коллекций и объектов

В приложении 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

  1. Некоторые полезные свойства объекта 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


  1. Работа с объектами Range

Работа, которая выполняется с помощью VBA, в основном связана с управлением ячейками и диапазонами на рабочих листах, что является главным предназначением редактора электронных таблиц. Объект Worksheet, представляющий рабочий лист, имеет свойствоRange, возвращающее одноимённый объект, представляющий одну ячейку или диапазон ячеек. Одна ячейка, возвращаемая, например, свойствамиActiveCellилиCells, также является диапазоном – минимально возможным диапазоном.

    1. Задание диапазона

Для задания диапазона используется следующий синтаксис.

объект.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.

'Запятая – оператор объединения диапазонов

    1. Свойства объекта 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

Возвращает или устанавливает значение для диапазона