Объекты Excel VBA относятся к отдельным «объектам», состоящим из кода и данных. Само приложение Excel является объектом, как и книги, листы, диапазоны ячеек и фигуры. Каждый объект имеет связанные свойства и методы. Объекты также могут содержать другие объекты, и объект коллекций используется для ссылки на группу тех же объектов Excel.
В этом руководстве мы рассмотрим некоторые часто используемые объекты Excel.
Объект приложения
Объект приложения относится ко всему приложению Excel. Объект Application содержит объект книги.
В следующем коде используется свойство WindowState объекта Application, чтобы установить для окна Excel максимально доступный размер:
12345 | Sub MaximizingTheExcelWindow ()Application.WindowState = xlMaximizedКонец подписки |
Объект Workbooks
Объект Workbooks относится к коллекции всех открытых в данный момент книг Excel.
Следующий код использует метод Workbooks.Add для создания новой книги и добавления ее в коллекцию:
12345 | Sub AddingANewWorkbookToTheWorkbooksCollection ()Рабочие тетради. ДобавитьКонец подписки |
Вы можете получить доступ к отдельной книге в коллекции Workbooks по ее порядковому номеру или имени. Таким образом, вы можете обратиться к Рабочей книге под названием ExcelWb, используя Рабочие книги («ExcelWB»).
Объект книги
Объект книги является частью коллекции рабочих книг. Объект книги содержит коллекцию рабочих листов (рабочие листы) и коллекцию листов (рабочие листы, листы диаграмм и макросы). Объект ActiveWorkbook относится к активной книге.
Следующий код использует метод ActiveWorkbook.Save для сохранения текущей активной книги:
12345 | Sub SavingTheWorkbook ()ActiveWorkbook.SaveКонец подписки |
Листы Объект
Объект листов относится к набору всех рабочих листов, листов диаграмм и макросов в книге. Следующий код использует метод Sheets.Add для добавления нового рабочего листа с именем ExtraSheet после последнего рабочего листа в книге:
123456 | Sub AddingANewSheet ()ActiveWorkbook.Sheets.Add (After: = ActiveWorkbook.Worksheets (Worksheets.Count), Count: = 1, _Тип: = xlWorksheet) .Name = "ExtraSheet".Конец подписки |
Обратите внимание на синтаксис метода Sheets.Add:
Таблицы.Добавить (До, После, Считать, Тип) куда:
-Before является необязательным и указывает, что новый лист должен быть добавлен перед существующим листом.
-After не является обязательным и указывает, что новый лист должен быть добавлен после существующего листа.
-Count не является обязательным и указывает количество добавляемых листов.
-Type является необязательным и указывает тип листа. xlWorksheet добавит новый лист, xlChart добавит новый лист диаграммы, а xlExcel4MacroSheet или xlExcel4IntlMacroSheet добавит новый лист макроса. Если пусто, используется xlWorksheet по умолчанию.
Вы можете получить доступ к отдельному листу в коллекции Sheets по его порядковому номеру или имени. Таким образом, вы можете обратиться к рабочему листу под названием SheetOne, используя Sheets («SheetOne»).
Объект рабочих листов
Объект Worksheets относится к коллекции всех рабочих листов в книге. Следующий код использует метод Worksheets.Add для добавления нового рабочего листа:
12345 | Sub AddingANewSheet ()Рабочие листы.ДобавитьКонец подписки |
Вы можете получить доступ к отдельному листу в коллекции Worksheets по его порядковому номеру или имени. Таким образом, вы можете обратиться к рабочему листу под названием SheetTwo, используя рабочие листы («SheetTwo»).
Объект рабочего листа
Объект рабочего листа является частью коллекции рабочих листов. Объект рабочего листа содержит объект диапазона и другие объекты. Объект ActiveSheet ссылается на активный лист.
Следующий код изменяет ориентацию страницы активного листа на альбомную:
12345 | Sub ChangingOrientationToLandscape ()ActiveSheet.PageSetup.Orientation = xlLandscapeКонец подписки |
Обратите внимание, что объект Sheet содержит объект PageSetup, а его свойство ориентации имеет значение xlLandscape.
Объект диапазона
Объект Range может относиться к отдельной ячейке или набору ячеек на листе. В следующем коде показано, как использовать метод Range.Select для выбора ячеек A1: B1:
12345 | Подвыбор ARange ()Диапазон ("A1: B1"). ВыберитеКонец подписки |
Объект Shapes
Объект Shapes относится к коллекции всех фигур на листе. Следующий код выберет все фигуры в ActiveSheet:
12345 | Sub SelectingAllTheShapes ()ActiveSheet.Shapes.SelectAllКонец подписки |
Объект формы
Объект Shape является частью коллекции Shapes. Следующий код создаст форму прямоугольника со скругленными углами, а затем задаст свойство name объекта формы:
123456789 | Sub UsingTheShapeObject ()С помощью листов (1) .Shapes.AddShape (msoShapeRoundedRectangle, _200, 100, 80, 80).Name = "Прямоугольник со скругленными углами"Конец сКонец подписки |
Объектная модель Excel VBA
Объектная модель VBA в Excel описывает иерархию всех объектов, которые вы можете использовать в Excel. Например, вы можете использовать объект Workbooks для косвенной или прямой ссылки на все другие объекты. В следующем коде показано, как выбрать ячейку A1 с использованием иерархической структуры:
12345 | Sub UsingTheHierachicalStructure ()Рабочие книги ("Книга1"). Рабочие листы ("Лист1"). Диапазон ("A1"). ВыберитеКонец подписки |
Объявление и назначение объектной переменной
Вы можете объявить и назначить объект переменной с помощью ключевых слов Dim и Set.
Например:
12 | Dim ws как рабочий листУстановите ws = ActiveWorkbook.ActiveSheet. |
В следующем коде показано, как объявить и назначить объект Range переменной:
12345678910111213141516 | Sub AssigningARangeToAVariable ()Dim rngOne как объектУстановите rngOne = Range ("A1: C1")rngOne.Font.Bold = ВерноС rngOne.Font.Bold = True.Font.Name = "Калибри".Font.Size = 9.Font.Color = RGB (35, 78, 125)..Interior.Color = RGB (205, 224, 180)..Borders (xlEdgeBottom) .LineStyle = xlContinuousКонец сКонец подписки |
Результат:
Для освоения VBA важно понимать, как работают объекты. Вы можете узнать больше в нашем интерактивном руководстве по VBA.