Функция CreateObject във VBA
Обектите са много важни понятия в кодирането на VBA и разбирането, че работният модел на обекта е доста сложен. Когато препращаме към обектите в VBA кодирането, ние го правим по два начина, т.е. „Ранно обвързване“ и „Късно обвързване“. „Ранно обвързване“ е процесът на задаване на препратка към обект от референтната библиотека на VBA и когато изпращаме файла на някой друг, той също изисква да зададе препратката към съответните обекти. Въпреки това, „Късно обвързване“ не изисква от потребителя да задава каквито и да е препратки към обекти, тъй като при кодиране със късно обвързване задаваме препратката към съответния обект, като използваме функцията VBA „CreateObject“.
![](https://cdn.know-base.net/3311678/createobject_in_vba_how_to_use_createobject_function_in_vba_.png.webp)
Какво представлява CreateObject в Excel VBA?
„Създаване на обект“, както самото име казва, че ще създаде споменатия обект от Excel VBA. И така, функцията Create Object връща препратката към обект, иницииран от Active X компонент.
По-долу е синтаксисът на функцията CreateObject във VBA
![](https://cdn.know-base.net/3311678/createobject_in_vba_how_to_use_createobject_function_in_vba__2.png.webp)
- Клас: Името на обекта, който се опитваме да инициираме и зададем препратката към променливата.
- (Име на сървъра): Това е незадължителен параметър; ако се игнорира, ще използва само локалната машина.
Пример за създаване на функция на обект в Excel VBA
По-долу са примерите за VBA CreateObject.
Пример # 1
Сега ще видим как да стартираме приложението PowerPoint от Excel, използвайки функцията CreateObject във VBA. Отворете Excel файла и отидете на прозореца на редактора на Visual Basic, като натиснете клавишите ALT + F11 .
Код:
Sub CreateObject_Example1 () Край Sub
![](https://cdn.know-base.net/3311678/createobject_in_vba_how_to_use_createobject_function_in_vba__3.png.webp)
Декларирайте променливата като PowerPoint.Application.
![](https://cdn.know-base.net/3311678/createobject_in_vba_how_to_use_createobject_function_in_vba__4.png.webp)
Както можете да видите по-горе, когато започнем да въвеждаме думата „PowerPoint“, не виждаме нито един списък на IntelliSense, показващ свързаните търсения. Това е така, защото “PowerPoint” е външен обект. Но няма какво да се притеснявате, обявете променливата като „Обект“.
Код:
Sub CreateObject_Example1 () Dim PPT като обект Край Sub
![](https://cdn.know-base.net/3311678/createobject_in_vba_how_to_use_createobject_function_in_vba__5.png.webp)
Тъй като сме декларирали променливата като „Object“, трябва да зададем препратката към обекта, като използваме ключовата дума „Set“. Като въведете ключовата дума „Set“, споменете променливата и поставете знак за равенство.
Код:
Sub CreateObject_Example1 () Dim PPT As Object Set PPT = End Sub
![](https://cdn.know-base.net/3311678/createobject_in_vba_how_to_use_createobject_function_in_vba__6.png.webp)
Сега отворете функцията CreateObject.
![](https://cdn.know-base.net/3311678/createobject_in_vba_how_to_use_createobject_function_in_vba__7.png.webp)
Тъй като ние се позоваваме на външния обект на „PowerPoint“ за параметър „Клас“ на функцията Създаване на обект, споменете името на външния обект в двойни кавички като „PowerPoint.Application“.
Код:
Sub CreateObject_Example1 () Dim PPT As Object Set PPT = CreateObject ("PowerPoint.Application") End Sub
![](https://cdn.know-base.net/3311678/createobject_in_vba_how_to_use_createobject_function_in_vba__8.png.webp)
Сега функцията Създаване на обект ще инициира приложението PowerPoint. След като обектът бъде иницииран, трябва да го направим видим, като използваме името на променливата.
![](https://cdn.know-base.net/3311678/createobject_in_vba_how_to_use_createobject_function_in_vba__9.png.webp)
Един от проблемите с метода Create Object или метода за късно свързване е, че не виждаме списъка IntelliSense в момента. Трябва да сте абсолютно сигурни в кода, който пишете.
За променливата „PPT“ използвайте свойството „Visible“ и задайте състоянието като „True“.
Код:
Sub CreateObject_Example1 () Dim PPT As Object Set PPT = CreateObject ("PowerPoint.Application") PPT.Visible = True End Sub
![](https://cdn.know-base.net/3311678/createobject_in_vba_how_to_use_createobject_function_in_vba__10.png.webp)
За да добавите слайд към PPT, дефинирайте VBA кода по-долу.
Код:
Sub CreateObject_Example1 () Dim PPT As Object Set PPT = CreateObject ("PowerPoint.Application") PPT.Visible = True PPT.Presentations.Add End Sub
Сега изпълнете кода ръчно или чрез клавиша F5 и вижте приложението “PowerPoint” се отваря.
![](https://cdn.know-base.net/3311678/createobject_in_vba_how_to_use_createobject_function_in_vba__11.png.webp)
След като приложението PowerPoint бъде активирано с помощта на променливата „PPT“, ние можем да започнем достъп до приложението PowerPoint.
Пример # 2
Сега ще видим как да стартираме приложение на Excel, използвайки функцията CreateObject във VBA. Още веднъж декларирайте променливата като „Обект“.
Код:
Sub CreateObject_Example2 () Dim ExcelSheet As Object End Sub
![](https://cdn.know-base.net/3311678/createobject_in_vba_how_to_use_createobject_function_in_vba__12.png.webp)
The moment we declare the variable as an object, it causes late binding, and we need to use the “Set” keyword to set the reference for the required object.
![](https://cdn.know-base.net/3311678/createobject_in_vba_how_to_use_createobject_function_in_vba__13.png.webp)
Since we are referencing to excel worksheet from the application excel, enter “Excel. Sheet” in double-quotes.
Code:
Sub CreateObject_Example2() Dim ExcelSheet As Object Set ExcelSheet = CreateObject("Excel.Sheet") End Sub
![](https://cdn.know-base.net/3311678/createobject_in_vba_how_to_use_createobject_function_in_vba__14.png.webp)
Once the reference for the excel sheet is set, we need to make it visible to use it. This is similar to how we made the PowerPoint application visible.
Code:
Sub CreateObject_Example2() Dim ExcelSheet As Object Set ExcelSheet = CreateObject("Excel.Sheet") ExcelSheet.Application.Visible = True End Sub
![](https://cdn.know-base.net/3311678/createobject_in_vba_how_to_use_createobject_function_in_vba__15.png.webp)
Now it will activate the excel worksheet.
Similarly, to initiate an excel workbook from other Microsoft products, we can use the below code.
Code:
Sub CreateObject_Example3 () Dim ExlWb като набор от обекти ExlWb = CreateObject ("Excel.Application") ExlWb.Application.Visible = True End Sub
![](https://cdn.know-base.net/3311678/createobject_in_vba_how_to_use_createobject_function_in_vba__16.png.webp)
Неща, които трябва да запомните за CreateObject във VBA
- Във VBA функцията CreateObject се използва за препратка към обекти.
- Функцията Create Object предизвиква процес на късно свързване.
- Използвайки функцията за създаване на обект, нямаме достъп до списъка IntelliSense на VBA.