Visual Basic за приложения е обектно-ориентиран език за програмиране. Основната концепция на обектно-ориентираното програмиране е, че софтуерното приложение (в този случай Excel) се състои от различни отделни обекти, всеки от които има свой собствен набор от функции и приложения.
Приложението на Excel съдържа клетки, работни листове, диаграми, централни таблици, чертожни фигури — списъкът с обекти на Excel е привидно безкраен. Всеки обект има свой собствен набор от характеристики, които се наричат свойства , и собствен набор от употреби, наречени методи .
Можете да мислите за тази концепция точно както бихте мислили за предметите, които срещате всеки ден, като компютъра, колата или хладилника. Всеки от тези обекти има идентифициращи качества, като височина, тегло и цвят. Всеки от тях има свои собствени различни приложения, като например работа с Excel, транспортиране на дълги разстояния или поддържане на нетрайни храни студени.
VBA обектите също имат разпознаваеми свойства и методи за използване. Клетката на работен лист е обект и сред неговите описаеми характеристики (негови свойства) са неговият адрес, височина и форматиран цвят на запълване. Работната книга също е VBA обект и сред използваемите й функции (нейните методи) са възможностите й да се отваря, затваря и към нея се добавя диаграма или въртяща таблица.
В Excel се занимавате с работни книги, работни листове и диапазони ежедневно. Вероятно мислите за всеки един от тези обекти като за част от Excel, без да ги разделяте в ума си. Въпреки това, Excel мисли за тях вътрешно като част от йерархичен модел, наречен обектен модел на Excel. Обектният модел на Excel е ясно дефиниран набор от обекти, които са структурирани според връзките между тях.
Разбиране на обекти
В реалния свят можете да опишете всичко, което виждате като обект. Когато погледнете къщата си, тя е обект. Къщата ви има стаи; тези стаи също са отделни обекти. Тези стаи може да имат гардероби. Тези килери също са предмети. Докато мислите за къщата си, стаите и килерите, може да видите йерархична връзка между тях. Excel работи по същия начин.
В Excel обектът Application е всеобхватният обект - подобен на вашата къща. Вътре в обекта Application Excel има работна книга. Вътре в работна книга има работен лист. Вътре в него има диапазон. Това са всички обекти, които живеят в йерархична структура.
За да посочите конкретен обект във VBA, можете да преминете през обектния модел. Например, за да стигнете до клетка A1 на лист 1, можете да въведете този код:
Activeworkbook.Sheets("Sheet1").Range("A1").Изберете
В повечето случаи йерархията на обектния модел се разбира, така че не е нужно да въвеждате всяко ниво. Въвеждането на този код също ви отвежда до клетка A1, защото Excel заключава, че имате предвид активната работна книга и активния лист:
Диапазон("A1").Изберете
Всъщност, ако курсорът ви вече е в клетка A1, можете просто да използвате обекта ActiveCell, отхвърляйки необходимостта от изписване на диапазона:
Activecell.Select
Разбиране на колекции
Много от обектите на Excel принадлежат към колекции , които по същество са групи от подобни обекти. По същия начин вашата къща се намира в квартал, който е колекция от къщи. Всеки квартал се намира в колекция от квартали, наречени град. Excel счита колекциите за самите обекти.
Във всеки обект на работна книга имате колекция от работни листове. Колекцията Worksheets е обект, който можете да извикате чрез VBA. Всеки работен лист във вашата работна книга живее в колекцията Worksheets.
Ако искате да се позовавате на работен лист в колекцията Worksheets, можете да се обърнете към него по позицията му в колекцията, като номер на индекс, започващ с 1, или по неговото име, като цитиран текст. Ако стартирате следните два реда код в работна книга, която има само един работен лист, наречен MySheet, и двете правят едно и също нещо:
Работни листове(1).Изберете
Работни листове("MySheet").Изберете
Ако имате два работни листа в активната работна книга, които имат имената MySheet и YourSheet, в този ред можете да се обърнете към втория работен лист, като напишете някой от тези изрази:
Работни листове(2).Изберете
Работни листове("YourSheet").Изберете
Ако искате да се обърнете към работен лист в работна книга, наречена MySheet в конкретна работна книга, която не е активна, трябва да квалифицирате препратката към работния лист и препратката към работната книга, както следва:
Workbooks("MyData.xls").Worksheets("MySheet").Изберете
Разбиране на свойствата
Свойствата по същество са характеристиките на обект. Къщата ви има цвят, квадратура, възраст и т.н. Някои имоти, като например цвета на къщата ви, могат да бъдат променени. Други имоти, като годината на строеж на къщата ви, не могат да се променят.
По същия начин обект в Excel като обекта Worksheet има свойство име на лист, което може да бъде променено, и свойство на ред Rows.Count, което не може.
Позовавате се на свойството на обект, като се позовавате на обекта и след това на свойството. Например, можете да промените името на вашия работен лист, като промените неговото свойство Name.
В този пример преименувате Sheet1 на MySheet:
Sheets("Sheet1").Name = "MySheet"
Някои свойства са само за четене, което означава, че не можете да им присвоите стойност директно. Пример за свойство само за четене е свойството Text на клетката, което осигурява форматиран външен вид на стойност в клетка. Не можете да го презапишете или промените.
Разбиране на методи
Методите са действията, които могат да бъдат извършени срещу обект. Помага да мислим за методите като глаголи. Например, можете да боядисате къщата си; във VBA, това може да се преведе на
къща.боя
Прост пример за метод на Excel е методът Select на обекта Range:
Диапазон("A1").Изберете
Друг е методът Copy на обекта Range:
Диапазон ("A1"). Копиране
Някои методи имат параметри, които могат да диктуват как да се прилагат методите. Например методът Paste може да се използва по-ефективно чрез изрично дефиниране на параметъра Destination:
ActiveSheet.Paste Destination:=Обхват("B1")