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