Объектная модель excel. Объекты Excel

12.04.2019

Лекция Объектная модель MS Excel.

1. Общая характеристика объектной модели MS Excel

2. Характеристика объектов

3. Работа в среде VBA. Управление свойствами объектов

Введение

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

1. Общая характеристика объектной модели MS Excel

ООП построен на использовании объектов. Реальные объекты окружающего мира обладают двумя основными характеристиками: они имеют набор свойств и способны разными методами изменять эти свойства и реагировать на события, возникающие как в окружающем мире, так и внутри самого объекта. Именно в таком виде в языках программирования и реализовано понятие объекта, как совокупности свойств (структур данных, характерных для этого объекта) и методов их обработки (подпрограмм изменения свойств).

Свойства – это параметры, которые описывают объект. Свойства, например, идентифицируют объект, определяют его внешнее оформление, положение на экране и размеры.

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

При выполнении ООП-программ реализуется событийный принцип, суть которого состоит в том, что объекты программы могут реагировать на события, происходящие в системе. События – это сообщения, которые определяют порядок действий программы. События могут носить разную природу – щелчки кнопками мыши, перемещение указателя мыши, ввод или изменение данных, нажатие на кнопки в окнах программы или на клавиши клавиатуры, ошибки программы и системы и т. п. Реакция состоит в выполнении одного из методов объекта. Для большинства объектов характерно событие Click (щелчок), которое наступает, если щелкнуть левой кнопкой мыши на избранном объекте. Характерными являются также события: DblClick (двойной щелчок), MouseDown, MouseUp (нажатие и отпускание кнопки мыши), Exit и Enter (потеря и получение фокуса) и многие другие.

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

Если нет объекта с требуемыми характеристиками, программист может создать такой объект и в дальнейшем использовать его в этой или другой программе.

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

Объектная модель MS Excel представляет собой иерархию объектов, подчиненных объекту Application , который соответствует самому приложению.

Число объектов достаточно велико, они образуют древовидную структуру (более мелкие ветви являются свойствами более крупных). Корнем этого "дерева" (начальным объектом) является Application (само приложение MS Excel).

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


Ниже приведены часть объектов MS Excel, которые мы будем использовать в своих программах.

Рис. 1. Упрощенная объектная модель Excel

На этом рисунке для семейств в скобках записаны имена объектов из семейств.

Для обращения к свойству или методу объекта (ссылки на объект) может использоваться либо полная, либо неявная ссылка.

Полная ссылка состоит из ряда имен вложенных друг в друга объектов (в соответствии с иерархией). В качестве разделителя имен используется точка. Например, полная ссылка на ячейку A5 рабочего листа Лист1 рабочей книги Книга1 (и например, записи в нее числа 10) в операторе присваивания имеет вид:

Application.Workbooks ("Книга 1").Worksheets("Лист 1").Range("A5") = 10

Термин Объекты Excel (понимаемый в широком смысле, как объектная модель Excel) включает в себя элементы, из которых состоит любая рабочая книга Excel. Это, например, рабочие листы (Worksheets ), строки (Rows ), столбцы (Columns ), диапазоны ячеек (Ranges ) и сама рабочая книга Excel (Workbook ) в том числе. Каждый объект Excel имеет набор свойств, которые являются его неотъемлемой частью.

Например, объект Worksheet (рабочий лист) имеет свойства Name (имя), Protection (защита), Visible (видимость), Scroll Area (область прокрутки) и так далее. Таким образом, если в процессе выполнения макроса требуется скрыть рабочий лист, то достаточно изменить свойство Visible этого листа.

В Excel VBA существует особый тип объектов – коллекция . Как можно догадаться из названия, коллекция ссылается на группу (или коллекцию) объектов Excel. Например, коллекция Rows – это объект, содержащий все строки рабочего листа.

Доступ ко всем основным объектам Excel может быть осуществлён (прямо или косвенно) через объект Workbooks , который является коллекцией всех открытых в данный момент рабочих книг. Каждая рабочая книга содержит объект Sheets – коллекция, которая включает в себя все рабочие листы и листы с диаграммами рабочей книги. Каждый объект Worksheet состоит из коллекции Rows – в неё входят все строки рабочего листа, и коллекции Columns – все столбцы рабочего листа, и так далее.

В следующей таблице перечислены некоторые наиболее часто используемые объекты Excel. Полный перечень объектов Excel VBA можно найти на сайте Microsoft Office Developer (на английском).

Объект Описание
Application Приложение Excel.
Workbooks Коллекция всех открытых в данный момент рабочих книг в текущем приложении Excel. Доступ к какой-то конкретной рабочей книге может быть осуществлён через объект Workbooks при помощи числового индекса рабочей книги или её имени, например, Workbooks(1) или Workbooks(“Книга1”) .
Workbook Объект Workbook – это рабочая книга. Доступ к ней может быть выполнен через коллекцию Workbooks при помощи числового индекса или имени рабочей книги (см. выше). Для доступа к активной в данный момент рабочей книге можно использовать ActiveWorkbook .

Из объекта Workbook можно получить доступ к объекту Sheets , который является коллекцией всех листов рабочей книги (рабочие листы и диаграммы), а также к объекту Worksheets , который представляет из себя коллекцию всех рабочих листов книги Excel.

Sheets Объект Sheets – это коллекция всех листов рабочей книги. Это могут быть как рабочие листы, так и диаграммы на отдельном листе. Доступ к отдельному листу из коллекции Sheets можно получить при помощи числового индекса листа или его имени, например, Sheets(1) или Sheets(“Лист1”) .
Worksheets Объект Worksheets – это коллекция всех рабочих листов в рабочей книге (то есть, все листы, кроме диаграмм на отдельном листе). Доступ к отдельному рабочему листу из коллекции Worksheets можно получить при помощи числового индекса рабочего листа или его имени, например, Worksheets(1) или Worksheets(“Лист1”) .
Worksheet Объект Worksheet – это отдельный рабочий лист книги Excel. Доступ к нему можно получить при помощи числового индекса рабочего листа или его имени (см. выше).

Кроме этого Вы можете использовать ActiveSheet для доступа к активному в данный момент рабочему листу. Из объекта Worksheet можно получить доступ к объектам Rows и Columns , которые являются коллекцией объектов Range , ссылающихся на строки и столбцы рабочего листа. А также можно получить доступ к отдельной ячейке или к любому диапазону смежных ячеек на рабочем листе.

Rows Объект Rows – это коллекция всех строк рабочего листа. Объект Range , состоящий из отдельной строки рабочего листа, может быть доступен по номеру этой строки, например, Rows(1) .
Columns Объект Columns – это коллекция всех столбцов рабочего листа. Объект Range , состоящий из отдельного столбца рабочего листа, может быть доступен по номеру этого столбца, например, Columns(1) .
Range Объект Range – это любое количество смежных ячеек на рабочем листе. Это может быть одна ячейка или все ячейки листа.

Доступ к диапазону, состоящему из единственной ячейки, может быть осуществлён через объект Worksheet при помощи свойства Cells , например, Worksheet.Cells(1,1) .

По-другому ссылку на диапазон можно записать, указав адреса начальной и конечной ячеек. Их можно записать через двоеточие или через запятую. Например, Worksheet.Range(“A1:B10”) или Worksheet.Range(“A1”, “B10”) или Worksheet.Range(Cells(1,1), Cells(10,2)) .

Обратите внимание, если в адресе Range вторая ячейка не указана (например, Worksheet.Range(“A1”) или Worksheet.Range(Cells(1,1)) , то будет выбран диапазон, состоящий из единственной ячейки.

Приведённая выше таблица показывает, как выполняется доступ к объектам Excel через родительские объекты. Например, ссылку на диапазон ячеек можно записать вот так:

Workbooks("Книга1").Worksheets("Лист1").Range("A1:B10")

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

В Excel VBA объект может быть присвоен переменной при помощи ключевого слова Set :

Dim DataWb As Workbook Set DataWb = Workbooks("Книга1.xlsx")

Активный объект

В любой момент времени в Excel есть активный объект Workbook – это рабочая книга, открытая в этот момент. Точно так же существует активный объект Worksheet , активный объект Range и так далее.

Сослаться на активный объект Workbook или Sheet в коде VBA можно как на ActiveWorkbook или ActiveSheet , а на активный объект Range – как на Selection .

Если в коде VBA записана ссылка на рабочий лист, без указания к какой именно рабочей книге он относится, то Excel по умолчанию обращается к активной рабочей книге. Точно так же, если сослаться на диапазон, не указывая определённую рабочую книгу или лист, то Excel по умолчанию обратится к активному рабочему листу в активной рабочей книге.

Таким образом, чтобы сослаться на диапазон A1:B10 на активном рабочем листе активной книги, можно записать просто:

Range("A1:B10")

Смена активного объекта

Если в процессе выполнения программы требуется сделать активной другую рабочую книгу, другой рабочий лист, диапазон и так далее, то для этого нужно использовать методы Activate или Select вот таким образом:

Sub ActivateAndSelect() Workbooks("Книга2").Activate Worksheets("Лист2").Select Worksheets("Лист2").Range("A1:B10").Select Worksheets("Лист2").Range("A5").Activate End Sub

Методы объектов, в том числе использованные только что методы Activate или Select , далее будут рассмотрены более подробно.

Свойства объектов

Каждый объект VBA имеет заданные для него свойства. Например, объект Workbook имеет свойства Name (имя), RevisionNumber (количество сохранений), Sheets (листы) и множество других. Чтобы получить доступ к свойствам объекта, нужно записать имя объекта, затем точку и далее имя свойства. Например, имя активной рабочей книги может быть доступно вот так: ActiveWorkbook.Name . Таким образом, чтобы присвоить переменной wbName имя активной рабочей книги, можно использовать вот такой код:

Dim wbName As String wbName = ActiveWorkbook.Name

Ранее мы показали, как объект Workbook может быть использован для доступа к объекту Worksheet при помощи такой команды:

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

Это возможно потому, что коллекция Worksheets является свойством объекта Workbook .

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

ActiveSheet.Name = "Мой рабочий лист"

Методы объектов

Объекты VBA имеют методы для выполнения определённых действий. Методы объекта – это процедуры, привязанные к объектам определённого типа. Например, объект Workbook имеет методы Activate , Close , Save и ещё множество других.

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

ActiveWorkbook.Save

Как и другие процедуры, методы могут иметь аргументы, которые передаются методу при его вызове. Например, метод Close объекта Workbook имеет три необязательных аргумента, которые определяют, должна ли быть сохранена рабочая книга перед закрытием и тому подобное.

Чтобы передать методу аргументы, необходимо записать после вызова метода значения этих аргументов через запятую. Например, если нужно сохранить активную рабочую книгу как файл .csv с именем “Книга2”, то нужно вызвать метод SaveAs объекта Workbook и передать аргументу Filename значение Книга2 , а аргументу FileFormat – значение xlCSV :

ActiveWorkbook.SaveAs "Книга2", xlCSV

Чтобы сделать код более читаемым, при вызове метода можно использовать именованные аргументы. В этом случае сначала записывают имя аргумента, затем оператор присваивания “:= ” и после него указывают значение. Таким образом, приведённый выше пример вызова метода SaveAs объекта Workbook можно записать по-другому:

ActiveWorkbook.SaveAs Filename:="Книга2", :=xlCSV

В окне Object Browser редактора Visual Basic показан список всех доступных объектов, их свойств и методов. Чтобы открыть этот список, запустите редактор Visual Basic и нажмите F2 .

Рассмотрим несколько примеров

Пример 1

Этот отрывок кода VBA может служить иллюстрацией использования цикла For Each . В данном случае мы обратимся к нему, чтобы продемонстрировать ссылки на объект Worksheets (который по умолчанию берётся из активной рабочей книги) и ссылки на каждый объект Worksheet отдельно. Обратите внимание, что для вывода на экран имени каждого рабочего листа использовано свойство Name объекта Worksheet .

"Пролистываем поочерёдно все рабочие листы активной рабочей книги "и выводим окно сообщения с именем каждого рабочего листа Dim wSheet As Worksheet For Each wSheet in Worksheets MsgBox "Найден рабочий лист: " & wSheet.Name Next wSheet

Пример 2

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

В коде, приведённом ниже, для объекта Range вызывается метод PasteSpecial . Этот метод передаёт аргументу Paste значение xlPasteValues .

"Копируем диапазон ячеек из листа "Лист1" другой рабочей книги (с именем Data.xlsx) "и вставляем только значения на лист "Результаты" текущей рабочей книги (с именем CurrWb.xlsm) Dim dataWb As Workbook Set dataWb = Workbooks.Open("C:\Data") "Обратите внимание, что DataWb – это активная рабочая книга. "Следовательно, следующее действие выполняется с объектом Sheets в DataWb. Sheets("Лист1").Range("A1:B10").Copy "Вставляем значения, скопированные из диапазона ячеек, на рабочий лист "Результаты" "текущей рабочей книги. Обратите внимание, что рабочая книга CurrWb.xlsm не является "активной, поэтому должна быть указана в ссылке. Workbooks("CurrWb").Sheets("Результаты").Range("A1").PasteSpecial Paste:=xlPasteValues

Пример 3

Следующий отрывок кода VBA показывает пример объекта (коллекции) Columns и демонстрирует, как доступ к нему осуществляется из объекта Worksheet . Кроме этого, Вы увидите, что, ссылаясь на ячейку или диапазон ячеек на активном рабочем листе, можно не указывать этот лист в ссылке. Вновь встречаем ключевое слово Set , при помощи которого объект Range присваивается переменной Col .

Данный код VBA показывает также пример доступа к свойству Value объекта Range и изменение его значения.

"С помощью цикла просматриваем значения в столбце A на листе "Лист2", "выполняем с каждым из них арифметические операции и записываем результат "в столбец A активного рабочего листа (Лист1) Dim i As Integer Dim Col As Range Dim dVal As Double "Присваиваем переменной Col столбец A рабочего листа "Лист2" Set Col = Sheets("Лист2").Columns("A") i = 1 "Просматриваем последовательно все ячейки столбца Col до тех пор "пока не встретится пустая ячейка Do Until IsEmpty(Col.Cells(i)) "Выполняем арифметические операции со значением текущей ячейки dVal = Col.Cells(i).Value * 3 - 1 "Следующая команда записывает результат в столбец A "активного листа. Нет необходимости указывать в ссылке имя листа, "так как это активный лист рабочей книги. Cells(i, 1).Value = dVal i = i + 1 Loop

Коллекция (Collection
  • (ПРОГРАММИРОВАНИЕ НА VBA В MS EXCEL)
  • (ИНФОРМАТИКА.)
  • Основные объекты приложения MS Excel
    Рассмотрим, как устроена объектная модель MS Excel с общих позиций. Различают объекты и их коллекции (семейства). Коллекция (Collection ) представляет собой объект, состоящий из набора других объектов одного и того же типа. Все объекты и коллекции связаны родовыми иерархическими отношениями....
    (ПРОГРАММИРОВАНИЕ НА VBA В MS EXCEL)
  • ОСОБЕННОСТИ ВЗАИМОДЕЙСТВИЯ ПРИЛОЖЕНИЙ MS EXCEL И OPENOFFICE.ORG CALC
    В разделе приводится краткий обзор состава и возможностей пакета OpenOftice. org (ОО.о). Рассматриваются его объектная модель и языковые конструкции языка ОО.о Basic (StarBasic) только в рамках его сравнения и взаимодействия с приложением MS Excel. Отметим, что OpenOffice.org является довольно популярным,...
    (ПРОГРАММИРОВАНИЕ НА VBA В MS EXCEL)
  • Примеры использования возможностей приложения Excel
    Пример 9.1. Построить график зависимости теплоемкости компонента Ci8H36 от температуры. Значения теплоемкостей и соответствующие температуры приведены в табл. 9.1. Таблица 9.1 Температура, К 300 400 500 600 700 800 900 1000 Теплоемкость, кал/(моль К) 97,71 132,32 146,42 166,00 182,65 196,80 209,01...
    (ИНФОРМАТИКА.)
  • Из всех офисных программ для создания пользовательских приложений чаще всего используется Excel. Этому есть два объяснения. Во-первых, данный пакет предназначен для широкого круга прикладных задач по обработке данных. Во-вторых, фактически именно с него началась история современного VBA. Всего несколько строчек кода, включенных в Excel, смогут создать программу для выполнения серьезных вычислений и оригинального анализа с использованием графики и выдачей отчетов. Однако для разработки собственных приложений необходимы следующие условия:

    § нужно научиться работать с Excel в его традиционном варианте, что позволит с помощью минимального программного кода использовать максимум встроенных возможностей пакета. Чем лучше вы знаете, сам продукт, тем проще создавать приложения;

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

    § следует изучить среду разработки VBA, где вы можете писать код программ, создавать пользовательские формы и отлаживать свое приложение.

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

    Например, объект Workbook представляет собой конкретный файл Excel. Он имеет свойства Name (имя файла), Path (имя каталога) и Author (имя автора файла). Метод Save сохраняет файл. Вот как выглядит использование этих методов:

    Существует два способа ссылок на объекты: можно сослаться непосредственно на имя одного из объектов или на индекс в коллекции. Согласно самому простому определению коллекция - это группа похожих объектов. Все объекты Excel разделяются на два класса: единичные объекты и объекты в коллекции. Для первых ссылка осуществляется непосредственно по их имени, для вторых - по индексу в данной группе. Коллекции предоставляют возможность иерархической организации объектов. Например, коллекция Workbooks содержит все объекты Workbook. Чтобы сослаться на конкретную рабочую книгу, можно указать имя:

    Workbooks("Book1.xls")

    или номер
    Workbooks(1)

    Четыре ключевых объекта

    Ключевыми объектами в Excel являются Application, Workbook, Worksheet и Range, которые образуют иерархию:

    Объект Application представляет собой саму программу Excel. Все приложения Excel/VBA реализуются в Excel, поэтому можно рассматривать этот объект в качестве среды, в которой они осуществляются. Любые установки свойств или вызовы методов, совершенные с объектом Application, воздействуют на весь Excel и соответственно на все приложения VBA, выполняемые в его среде. Например, используя объект Application, можно сделать невидимой строку состояния Excel и изменить его заголовок:

    Application.DisplayStatusBar = False
    Application.Caption = "Пользовательское приложение"

    Объект Workbook является файлом рабочей книги Excel. В терминах разработки приложений его можно рассматривать в качестве механизма доставки или контейнера для любого приложения VBA, созданного при помощи Excel. Любые установки свойств или вызовы методов, совершенные с объектом Workbook, воздействуют на данное приложение. Например, для установки защиты и сохранения рабочей книги можно использовать такой код:

    With Application.Workbooks(1)

    Save
    End With

    Объект Worksheet, содержащийся в Workbook, служит нескольким целям в приложении Excel/VBA. Он содержит ячейки, куда пользователь может включать формулы для выполнения вычислений. При этом свойства и методы объекта Worksheet обрабатывают электронную таблицу как единое целое. Например, следующий код изменяет имя электронной таблицы(рабочий лист) и делает ее невидимой:

    With Application.Workbooks(1).Worksheets(1)

    Name = "Работа с ценными бумагами"

    Visible = False

    Объект Range представляет собой одну или несколько ячеек в электронной таблице. Он используется в основном для хранения и вывода фрагментов данных: чисел, строк или формул. Ячейки электронной таблицы, которые представлены в объекте Range, обладают широкими возможностями. Например, пользователь способен получить доступ из ячейки к более чем 400 встроенным функциям Excel и вызвать функции VBA. Можно также установить связи с другими ячейками в той же самой электронной таблице, других электронных таблицах или других рабочих книгах. Гибкость и мощность объекта Range позволяют совершенствовать встроенный вычислительный блок Excel и создавать более сложные приложения для анализа данных.

    Объект Application

    Объект Application –это главный (корневой) объект в иерархии объектов Excel, представляющий само приложение Excel.Он имеет большое число свойств и методов, позволяющих установить общие параметры приложения Excel.Перечислим основные его свойства и методы.

    Основные свойства объекта Application

    1 ActiveWorkbook, ActiveSheet, ActiveCell-возвращают активную,соответственно,рабочую книгу,рабочий лист и ячейку.В следующем примере в активной ячейке вводиться срока “Отчет”:

    ActiveCell.Value=”Отчет”

    2 Caption-возвращает или устанавливает текст из заголовка главного окна Excel.В следующем примере в качестве заголовка окна приложения устанавливается текст “Отчет за май”

    Application.Caption=”Отчет за май”

    3.DisplayFormulaBar-логическое свойство, регулирующее отображение строки формул.Например в следующем коде строка формул не отображается: Application.DisplayFormulaBar

    4 DisplayStatusbar- логическое свойство, регулирующее отображение строки состояния

    5 Path-возвращает путь к файлу Excel.exe

    6 StatusBar- возвращает или устанавливает текст, выводимый в строке состояния

    7 Version –возвращает номер текущей версии Excel.Используется для проверки применения корректной версии.Например:

    If Application.Varsion <> “9.0” Then Exit Sub

    Объект Workbook и семейство Workbooks

    В иерархии Excel этот объект идет сразу после объекта Application и представляет файл рабочей книги.

    Основные свойства объекта Workbook и семейства Workbooks

    1 ActiveSheet – возвращает активный лист книги

    2 Name –возвращает или устанавливает имя книги

    З Path-возвращает полное имя папки, в которой находиться данная книга

    4 Saved-логическое свойство, которое устанавливает, не производились ли изменения в книге со времени его последнего сохранения

    Основные методы объекта Workbook и семейства Workbooks

    1 Activate – активизирует рабочую книгу так, что ее первый рабочий лист становится активным.Например:

    Workbooks(“Отдел кадров”).Activate

    2 Protect- защищает рабочую книгу от внесения в нее изменений

    3 Close –закрывает книгу

    4 Open- открывает существующую книгу.Синтакис:

    Open(FileName), где FileName –имя открываемого файла

    Например:

    Open(“Storage.xls”)

    Основными событиями этого объекта являются Open (происходит при открытии книги).Например, напишем процедуру обработки события Open объекта Workbook при ее открытии.При этом мы выведем некоторое сообщение:

    Sub Workbook_Open()

    MsgBox(“Привет”)

    Объект Worksheet и семейство Worksheets

    В иерархии Excel объект WorkSheet идет сразу после объекта Workbook и представляет рабочий лист

    Основные свойства объекта Worksheet и семейства Worksheets

    1 Name- возвращает или устанавливает имя рабочего листа

    2 Cells –Возвращает семейство всех ячеек рабочего листа или объект Range-конкретную ячейку, если в скобках указаны номер строки и столбца, на пересечении которых ячейка расположенна.Например:

    Worksheets(1).Cells.Interior.ColorIndex=3 –окрашивает все ячейки первого рабочего листа в красный цвет.

    Worksheets(1).Cells(1,2).Value=”Привет” –выводит строку “Привет” в ячейку,расположенную в первой строке во втором столбце

    3 Columns, Rows- возвращают семейство всех столбцов и строк рабочего листа или конкретный столбец, если в скобках указан индекс.Например

    WorkSheets(1).Columns(2)- возвращает второй столбец

    Основные методы объекта Worksheet и семейства Worksheets

    1 Activate- активизирует указанный рабочий лист.Например

    Worksheets(1).Activate

    2 Delete –удаляет указанный рабочий лист. Например

    Worksheets(1).Delete

    3 Protect - защищает рабочий лист от внесения в нее изменений

    Основными событиями этого объекта являются Activate (происходит при активизации рабочего листа) и Deactivate (происходит при деактивизации рабочего листа).Например, напишем процедуру обработки события Activate объекта Worksheet при ее активизации.При этом мы выведем некоторое сообщение:

    Sub Worksheet_Activate()

    MsgBox(“Привет”)

    Объект Range

    В иерархии Excel объект Range (диапазон) , один из ключевых объектов VBA, следует сразу после объекта Worksheet. Объект Range не является элементом никакого семейства объектов.

    Если в диапазоне указывается только имена столбцов и строк, то объект Range задает диапазон, состоящий из указанных столбцов и строк.Например, Range(“A:C”) задает диапазон состоящий из столбцов A,B,C. Range(“A:A”) задает диапазон состоящий из столбца А, Range(“2:2”) задает диапазон состоящий из второй строки.

    Для того чтобы сослаться на конкретный диапазон ячеек достаточно указать адрес его верхней левой ячейки и адрес его нижней правой.Например, Range(“A1:B3”) задает диапазон состоящий из ячеек A1,A2,A3,B1,B2,B3.

    Ячейка-это частный случай диапазона, который состоит из единственной ячейки.Например Range(“A1”) задает диапазон состоящий из ячейки A1.

    Основные свойства объекта Range

    1 Value- возвращает или устанавливает значение в ячейках диапазона.Например

    x=Range(“C1”).Value - Некоторой переменной х присваивается значение из ячейки C1

    2 Name- возвращает или устанавливает имя диапазана

    3 Columns, Rows- возвращают все столбцы или строки в диапазоне.Например

    Worksheets(1).Range("A1:B3").Columns.Value = 2 – во всех столбцах диапазона

    A1:B3 выводится число 3

    4 Interior- возвращает объект Interior, представляющий собой фон ячейки.Среди свойств объекта Interior

    отметим только одно –ColorIndex-цвет фона, которое задается целыми числами от 1 до 56 .Например

    Range(“A1”).Interior.ColorIndex=3 - Фон ячейки A1 заполняется красным цветом

    5 Font –возвращает объект Font , представляющий собой шрифт.Объект Font имеет свойства Name(строка, указывающая имя шрифта) и т.д.

    6 HorizontalAlignment- Горизонтальное выравнивание в ячейках диапазона.Допустимы значения xlCenter (Выравнивание по центру),xlRight(Выравнивание по правому краю) и т.д.

    Основные методы объекта Range

    1 ClearFormats и ClearContents- очищают, соотве-но, форматы и содержимое в ячейках диапазона.Например

    Range(“A1:D2”).ClearContents

    2 Select- выделение диапазона


    ©2015-2019 сайт
    Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
    Дата создания страницы: 2016-02-16

    Аннотация: Лекция посвящена описанию объектной модели MS Excel и подробному описанию методов, свойств и событий Application.

    13.1. Особенности программирования для MS Excel

    Microsoft Office Excel - это популярные электронные таблицы. Обычно, программируя для этой программы, преследуют такие цели:

    • Автоматизация вычислений.
    • Автоматизация ввода и обработки информации.
    • Работа с базами данных - вывод, ввод, анализ, визуализация информации.
    • Анализ финансовой и другой информации.
    • Создание систем для организации автоматизированного ввода данных
    • Математическое моделирование .

    В общем виде программирование в Excel похоже на работу с Microsoft Word . Однако одно из главных отличий заключается в том, что в Excel рабочая область листа разбита на ячейки, каждая из которых имеет собственное имя. Имена ячеек могут быть двух видов.

    • Первый вид (стиль A1) - это имя, состоящее из буквенного имени столбца и номера строки. Например, A1 - ячейка, находящаяся на пересечении столбца А (первого) и первой строки.
    • Другой вид - это индексы ячеек (стиль именования R1C1 ). Для адресации ячейки в таком стиле указывают номер строки (R - Row - строка) и номер столбца (C - Column - столбец), на пересечении которых расположена ячейка. Строки изначально пронумерованы, а номера столбцов начинаются с 1 - первому столбцу соответствует столбец A , второму - В и т.д. Например, (2, 3) - это адрес ячейки, находящийся на пересечении второй строки и третьего столбца, то есть, если переложить это на стиль A1 - получим ячейку С2 (рис. 13.1 .)


    Рис. 13.1.

    Для выполнения большинства операций в MS Excel применяются следующие объекты.

    • Excel.Application (Приложение) - объект, представляющий приложение Microsoft Excel, аналогичен Word.Application .
    • Workbook ( Рабочая книга ) - представляет рабочую книгу - аналог документа Microsoft Word. Однако, в Word мы работаем с данными, расположенными в документе, а в Excel на пути к данным есть еще один объект - рабочий лист.
    • Worksheet (Рабочий лист) - книга в MS Excel разбита на рабочие листы. Именно на листе расположены ячейки, которые могут хранить информацию и формулы.
    • Range (Диапазон) - может быть представлен в виде одной ячейки или группы ячеек. Этот объект заменяет множество объектов для работы с элементами документов (character , word и т.д.), которые применяются в Microsoft Word. В результате работа с листом становится очень четкой и удобной - чтобы работать с какой-либо ячейкой, надо знать лишь ее имя (в формате A1) или адрес (R1C1 ).
    • QueryTable (Таблица запросов) - этот объект используют для импорта в Microsoft Excel информации из баз данных. Подключение к базе данных , запрос информации и т.д. производятся средствами объекта, а итоги запроса выгружаются на лист MS Excel в виде обычной таблицы.
    • PivotTable (Сводная таблица) - это особый вид электронной таблицы Excel - она позволяет в интерактивном режиме обобщать и анализировать большие объемы информации, в частности, взятой из базы данных.
    • Chart (Диаграмма) - представляет собой диаграмму. Обычно их используют для визуализации данных.

    Давайте начнем рассмотрение объектной модели MS Excel с объекта Application .

    13.2. Объект Application

    MsgBox Excel.Application.Name Листинг 13.1. Вывести имя приложения

    После выполнения программы в окне сообщения отобразится имя приложения - в данном случае - Microsoft Excel . Очевидно, что свойство Name объекта Application возвращает имя приложения.

    Теперь рассмотрим наиболее важные методы и свойства Application . Некоторые из них похожи на таковые в MS Word . Например, метод Quit точно так же, как в Word , закрывает приложение , свойство Visible отвечает за видимость окна программы и т.д.

    13.3. Методы Application

    13.3.1. Calculate - принудительный пересчет

    Этот метод, вызываемый для объекта Application , позволяет пересчитать все открытия книги. Его же можно вызывать для отдельных книг (объект Workbook ) листов ( Worksheet ), ячеек и их диапазонов (Range ). Например, код из листинга 13.2 . позволяет пересчитать все открытые книги.

    Application.Calculate Листинг 13.2. Пересчитать все открытые книги

    13.3.2. GoTo - переход в ячейку

    13-02-Excel GoTo.xlsm - пример к п. 13.3.2.

    Позволяет выделить любой диапазон ячеек в любой книге, причем, если книга не активна - она будет активирована. Так же метод может запускать макросы Microsoft Excel.

    Полный вызов метода выглядит так:

    Goto(Reference, Scroll)

    В качестве параметра Reference используется ссылка на ячейку или диапазон ячеек , которые должны быть выделены после вызова метода. Так же здесь может быть использовано имя макроса - тогда он будет запущен.

    Параметр Scroll отвечает за "перемотку" листа Excel к выделенным ячейкам - так, чтобы левый верхний угол выделения совпадал бы с левым верхним углом отображаемой области листа. Если Scroll установлен в True - лист перематывается, если в False - нет.

    Например, такой вызов (листинг 13.3 .) позволяет выделить ячейку H500 на активном листе.

    Application.Goto _ Reference:=ActiveSheet.Range("H500"), _ Scroll:=True Листинг 13.3. Выделить ячейку H500

    Как видите, обращение к активному листу очень напоминает обращение к активному документу в MS Word. Обратите внимание на то, что мы используем полное обращение к методу - Application.GoTo - как вы знаете, обычно свойства и методы объекта Application можно использовать в коде, не указывая этого объекта. Однако, если в этом случае не указать Application , то вместо метода GoTo программа попытается выполнить оператор безусловного перехода GoTo .

    13.3.3. SendKeys - имитация нажатий на клавиши клавиатуры

    13-03-Excel SendKeys.xlsm - пример к п. 13.3.3.

    Очень интересный метод - позволяет передавать в активное окно приложения нажатия клавиш. Полный вызов метода выглядит так:

    SendKeys(Keys, Wait)

    Параметр Keys позволяет задавать клавиши, нажатия которых будут переданы приложению. Метод поддерживает эмуляцию как алфавитно-цифровых, так и управляющих клавиш , для которых применяется специальная кодировка. Алфавитно-цифровые клавиши указываются при вызове в своем обычном виде Например, для передачи символа "Ф" нужно указать его при вызове метода и т.д.

    Чтобы передать приложению нажатия клавиши Backspace - используйте код {BS} . Для передачи нажатия кнопки Enter используйте значок ~ (