Об'єкти Excel VBA відносяться до окремих "сутностей", що складаються з коду та даних. Сама програма Excel є об’єктом, як і книги, робочі аркуші, діапазони клітинок та фігури. Кожен об'єкт має пов'язані властивості та методи. Об’єкти також можуть містити інші об’єкти, а об’єкт колекцій використовується для посилання на групу тих самих об’єктів Excel.
У цьому підручнику ми розглянемо деякі широко використовувані об’єкти Excel.
Об'єкт програми
Об'єкт програми відноситься до всієї програми Excel. Об'єкт Application містить об'єкт книги.
Наступний код використовує властивість WindowState об'єкта Application для встановлення вікна Excel на максимальний доступний розмір:
12345 | Sub MaximizingTheExcelWindow ()Application.WindowState = xlМаксимізованеEnd Sub |
Об’єкт робочих зошитів
Об'єкт Робочі книги відноситься до колекції всіх відкритих наразі книг Excel.
У наведеному нижче коді використовується метод Workbooks.Add для створення нової книги та додавання її до колекції:
12345 | Додавання підрозділуANewWorkbookToTheWorkbooksCollection ()Робочі зошити.ДодатиEnd Sub |
Ви можете отримати доступ до окремої книги у колекції Робочих книг за її номером або назвою індексу. Таким чином, ви можете звернутися до робочої книги під назвою ExcelWb за допомогою робочих книг ("ExcelWB").
Об’єкт робочої книги
Об'єкт робочої книги є частиною колекції робочих книг. Об’єкт робочої книги містить колекцію аркушів (аркушів) та колекцію аркушів (аркушів, аркушів діаграм та макролистів). Об'єкт ActiveWorkbook відноситься до активної книги.
У цьому коді використовується метод ActiveWorkbook.Save для збереження поточної активної книги:
12345 | Sub SavingTheWorkbook ()ActiveWorkbook.SaveEnd Sub |
Об'єкт аркушів
Об'єкт "Аркуші" відноситься до колекції всіх аркушів, аркушів діаграми та макролистів у книзі. У наведеному нижче коді використовується метод Sheets.Add для додавання нового аркуша під назвою ExtraSheet після останнього аркуша у книзі:
123456 | Додавання доповненняANewSheet ()ActiveWorkbook.Sheets.Add (After: = ActiveWorkbook.Worksheets (Worksheets.Count), Count: = 1, _Type: = xlWorksheet) .Name = "ExtraSheet"End Sub |
Зверніть увагу на синтаксис методу Sheets.Add:
Таблиці. Додати (Раніше, Після, Рахувати, Тип) де:
-Before є необов’язковим і вказує, що новий аркуш слід додати перед існуючим аркушем.
-After є необов’язковим і вказує, що новий аркуш слід додавати після наявного аркуша.
-Count є необов’язковим і вказує кількість аркушів для додавання.
-Type є необов’язковим і визначає тип аркуша. xlWorksheet додасть новий аркуш, xlChart додасть новий аркуш діаграми, а xlExcel4MacroSheet або xlExcel4IntlMacroSheet додасть новий макросхема. Якщо пусто, використовується xlWorksheet за замовчуванням.
Ви можете отримати доступ до окремого аркуша у колекції "Таблиці" за його номером або назвою. Таким чином, ви можете звернутися до робочого аркуша під назвою SheetOne, використовуючи Sheets ("SheetOne").
Об'єкт робочих листів
Об'єкт "Аркуші" відноситься до колекції всіх аркушів у книзі. У цьому коді використовується метод Worksheets.Add для додавання нового аркуша:
12345 | Додавання доповненняANewSheet ()Робочі аркуші.ДодатиEnd Sub |
Ви можете отримати доступ до окремого аркуша у колекції аркушів за його номером або назвою індексу. Таким чином, ви можете звернутися до робочого аркуша під назвою SheetTwo, використовуючи робочі аркуші ("SheetTwo").
Об’єкт робочого аркуша
Об'єкт аркуша є частиною колекції аркушів. Об’єкт аркуша містить об’єкт діапазону та інші об’єкти. Об'єкт ActiveSheet відноситься до активного аркуша.
Наступний код змінює орієнтацію сторінки активного аркуша на альбомну:
12345 | Sub ChangingOrientationToLandscape ()ActiveSheet.PageSetup.Orientation = xlLandscapeEnd Sub |
Зауважте, що об’єкт Sheet містить об’єкт PageSetup, а його властивість орієнтації встановлена на xlLandscape.
Об'єкт діапазону
Об'єкт "Діапазон" може посилатися на одну клітинку або набір клітинок на аркуші. Наступний код показує, як використовувати метод Range.Select для виділення клітинок A1: B1:
12345 | Вибір підрозділуARange ()Діапазон ("A1: B1"). ВиберітьEnd Sub |
Об'єкт фігур
Об'єкт Shapes відноситься до колекції всіх фігур на аркуші. Наступний код виділить усі фігури на аркуші ActiveSheet:
12345 | ВибравшиAllTheShapes ()ActiveSheet.Shapes.SelectAllEnd Sub |
Об'єкт фігури
Об'єкт Shape є частиною колекції Shapes. Наступний код створить округлену форму прямокутника, а потім встановить властивість name об’єкта фігури:
123456789 | Додаткове використанняTheShapeObject ()З аркушами (1) .Shapes.AddShape (msoShapeRoundedRectangle, _200, 100, 80, 80).Name = "Закруглений прямокутник"Закінчити зEnd Sub |
Об’єктна модель Excel VBA
Модель об’єктів VBA Excel описує ієрархію всіх об’єктів, які можна використовувати в Excel. Наприклад, ви можете використовувати об’єкт Робочі книги для посилання на всі інші об’єкти побічно або безпосередньо. Наступний код показує, як вибрати клітинку A1, використовуючи ієрархічну структуру:
12345 | Додаткове використанняHierachicalStructure ()Робочі зошити ("Книга1"). Робочі аркуші ("Аркуш1"). Діапазон ("А1"). ВиберітьEnd Sub |
Оголошення та призначення змінної об’єкта
Ви можете оголосити та призначити об’єкт змінній за допомогою ключових слів Dim і Set.
Наприклад:
12 | Затемнити ws як робочий аркушВстановіть ws = ActiveWorkbook.ActiveSheet |
Наступний код показує, як оголосити та призначити об’єкт Range змінній:
12345678910111213141516 | Додаткове призначенняARangeToAVariable ()Dim rngOne As ObjectВстановити rngOne = Діапазон ("A1: C1")rngOne.Font.Bold = ПравдаЗ rngOne.Font.Bold = Правда.Font.Name = "Калібр".Розмір шрифту = 9. Колір шрифту = RGB (35, 78, 125).Внутрішній. Колір = RGB (205, 224, 180).Кордюри (xlEdgeBottom) .LineStyle = xlПереривнийЗакінчити зEnd Sub |
Результат такий:
Важливо розуміти, як об’єкти працюють для оволодіння VBA. Ви можете дізнатися більше з нашим Інтерактивним підручником VBA.