Какво е методът CreateObject във VBA и как да използвате метода CreateObject в Excel?

Съдържание:

Anonim

Както подсказва името, функцията CreateObject се използва за създаване на обекти.

Но защо използваме метод или функция CreateObject, ако можем директно да създадем обект, използвайки новата ключова дума?

Е, това е валиден въпрос и имаме подходящ отговор.

Създаването на обект с помощта на CreateObject се нарича Късно свързване. При късно свързване създаването на обекти става по време на изпълнение. Не се нуждае от добавяне на препратки. Това прави VBA кода преносим.

Например, ако създадете приложение, което се занимава с други приложения и използвате ранно обвързване чрез добавяне на препратки и използване на нов ключова дума. По -късно прехвърляте този код на друга машина, тогава ще трябва да добавите и препратките към тази машина. Но ако сте използвали метода CreateObject за създаване на други обекти на приложение, няма да е необходимо да добавяте препратките на други машини, в случай че прехвърляте или споделяте кода.

В тази статия ще научим за метода CreateObject, използвайки някои примери.

Синтаксис на функцията CreateObject:

Задайте object_name = CreateObject (име на клас като низ, [име на сървър])

име на клас като низ: Това е задължителна променлива. Това е низ, който се отнася до името на приложението и типа на обекта. Името на приложението и класът на обекта, който ще бъде създаден, трябва да бъдат декларирани в AppName.ObjecType. Например, ако искам обект на Word Application, тогава бих написал „Word.Application“. Ще го видим подробно в примери по -късно.

[Име на сървъра]: Това е незадължителна променлива. Това е низ от името на мрежовия сървър, където обектът ще бъде създаден. Ако името на сървъра е празен низ (""), се използва локалната машина. Няма да използваме това в тази глава.

Сега, след като знаем основите на функцията CreateObject, нека ги използваме в някои примери:

Пример 1: Отворете приложението Microsoft Word с помощта на Excel VBA

Така че, ако искаме да използваме ранно свързване, бихме добавили препратки към приложения за думи, използвайки менюто Инструменти-> Препратки.

И нашият код ще изглежда така.

Sub OpenWordApp () Dim wordApp като нова Word.Application Dim wordDoc като документ wordApp.Visible = True wordDoc = wordApp.Documents.Add End Sub 

Предимството на този код, че получавате помощта на intellensence на VBA и ви показва наличния метод и свойства на обекта, който сте създали. Той ще работи перфектно вашата система. Но ако споделите този код на някой друг и той не е добавил препратката към библиотеката с думи на microsoft от инструменти, те ще получат грешка.

За да избегнете тази грешка, използвайте кода по -долу.

Sub OpenWordApp () Затъмняване на wordApp като набор от обекти wordApp = CreateObject ("Word.Application") Затъмняване на wordDoc като обект wordApp.Visible = True Set wordDoc = wordApp.Documents.Add End Sub 

Горният код ще работи перфектно на всяка машина. Той е преносим, ​​тъй като правим късно свързване с помощта на метода CreateObject за създаване на обекта.

Нека видим друг пример:

Пример 2: Създайте обект на работна книга с помощта на функцията CreateObject

Ако работите с VBA за известно време, трябва да сте създали или добавили в работни книги, използвайки ключовата дума New. В този пример ще направим това с помощта на CreateObject.

Sub addSheet () „Декларирайте променлива на обект, за да държи обекта“. Dim as Object причинява късно свързване. Затъмнете ExcelSheet като обект Задайте ExcelSheet = CreateObject ("Excel.Sheet") 'Направете Excel видим чрез обекта Application. ExcelSheet.Application.Visible = True 'Поставете малко текст в първата клетка на листа. ExcelSheet.Application.Cells (1, 1) .Value = "Това е колона А, ред 1" 'Запазете листа в директорията C: \ test.xls. ExcelSheet.SaveAs "C: \ TEST.XLS" 'Затворете Excel с метода Quit на обекта Application. ExcelSheet.Application.Quit 'Освободете променливата на обекта. Задайте ExcelSheet = Нищо не завършва под 

Така че да, момчета, ето как използвате метода CreateObject във VBA. Нека да обсъдим ползите и недостатъците от него.

Предимства на CreateObject за създаване на обект

Основното предимство на CreateObject е, че прави кода ви преносим (когато създаването на обект е проблем). Можете да споделите кода на всеки, без да се притеснявате дали са добавили препратката към обектната програма, използвайки или не.

Недостатък на CreateObject

Недостатъците на метода CreateObject са:

Трябва да знаете структурата на класа, който ще използвате за създаване на обект.

След като сте създали обекта, вие сте изцяло зависими от паметта си за методите и свойствата на обектите, тъй като VBA не предоставя никакъв интелиссенс, който да ви помогне.

Можем да преодолеем горните недостатъци. Имам трик.

Винаги, когато пиша код, който ще бъде споделен с други, използвам първия метод за създаване на обекти (Добавяне на препратки от инструменти). Това ми помага да напиша кода по -бързо. След като завърша програмата VBA и я тествам, заменям метода New с метода CreateObject. Това прави кода преносим. Можете да използвате този трик.

Така че да, момчета, ето как можете да използвате функцията CreateObject за създаване на обекти във VBA. Надявам се, че успях да обясня всичко. Ако имате въпроси относно тази статия или други въпроси, свързани с VBA, попитайте ме в секцията за коментари по -долу.

Първи стъпки с потребителските формуляри на Excel VBA| Ще обясня как да създам формуляр в excel, как да използвам VBA инструментариума, как да боравя с потребителските входни данни и накрая как да съхранявам потребителските входни данни. Ще преминем през тези теми, като използваме един пример и стъпка по стъпка ръководство.

VBA променливи в Excel| VBA означава Visual Basic за приложения. Това е език за програмиране от Microsoft. Използва се с приложения на Microsoft Office като MSExcel, MS-Word и MS-Access, докато VBA променливите са специфични ключови думи.

Променлив обхват на Excel VBA| Във всички езици за програмиране имаме променливи спецификатори за достъп, които определят от къде може да се получи достъп до определена променлива. Excel VBA не е изключение. VBA също има спецификатори на обхвата.

Аргументи на ByRef и ByVal | Когато един аргумент се предава като аргумент ByRef на различна под -функция или функция, се изпраща препратката към действителната променлива. Всички промени, направени в копието на променливата, ще се отразят в първоначалния аргумент.

Изтриване на листове без подкани за потвърждение с помощта на VBA в Microsoft Excel | Тъй като изтривате листове с помощта на VBA, знаете какво правите. Бихте искали да кажете на Excel да не показва това предупреждение и да изтрие проклетия лист.

Добавяне и запазване на нова работна книга с помощта на VBA в Microsoft Excel 2016| В този код първо създадохме препратка към обект на работна книга. И тогава го инициализирахме с нов обект на работна книга. Ползата от този подход е, че можете лесно да извършвате операции с тази нова работна книга. Като запазване, затваряне, изтриване и т.н.

Показване на съобщение в лентата за състоянието на Excel VBA| Лентата на състоянието в Excel може да се използва като монитор на кодове. Когато вашият VBA код е дълъг и изпълнявате няколко задачи с помощта на VBA, често деактивирате актуализацията на екрана, така че да не виждате този екран да трепти.

Изключете предупредителните съобщения с помощта на VBA в Microsoft Excel 2016| Този код не само деактивира сигналите за VBA, но също така увеличава ефективността на кода във времето. Да видим как.

Популярни статии:

50 преки пътища в Excel за повишаване на вашата производителност | Бъдете по -бързи в задачата си. Тези 50 преки пътища ще ви накарат да работите още по -бързо в Excel.

Функцията VLOOKUP в Excel | Това е една от най -използваните и популярни функции на excel, която се използва за търсене на стойност от различни диапазони и листове.

COUNTIF в Excel 2016 | Пребройте стойностите с условия, използвайки тази невероятна функция. Не е необходимо да филтрирате данните си, за да броите конкретни стойности. Функцията Countif е от съществено значение за подготовката на вашето табло.

Как да използвате функцията SUMIF в Excel | Това е друга основна функция на таблото. Това ви помага да обобщите стойностите при конкретни условия.