Забележка: Функцията, методът, обектът или свойството, описани в тази тема, се забраняват, ако услугата microsoft Jet Expression се изпълнява в ограничителен режим, което предотвратява оценяването на потенциално опасни изрази. За повече информация относно ограничителния режим потърсете "ограничителен режим" в помощта.
Създава и връща препратка към ActiveX обект.
Синтаксис
CreateObject ( клас [, име на сървър] )
Синтаксисът на функцията CreateObject има следните аргументи:
Аргумент |
Описание |
клас |
Задължително. Variant (String). Името на приложението и класът на обекта, който трябва да се създаде. |
име на сървър |
Незадължително. Variant (String). Името на мрежовия сървър, където ще бъде създаден обектът. Ако servername е празен низ (""), се използва локалният компютър. |
Класът аргумент използва името на приложението за синтаксис.objecttype и има следните части:
Част |
Описание |
име на приложение |
Задължително. Variant (String). Името на приложението, предоставящо обекта. |
тип на обект |
Задължително. Variant (String). Типът или клас на обекта за създаване. |
Забележки
Всяко приложение, което поддържа автоматизация, предоставя поне един тип обект. Например приложение за текстообработка може да предостави обект Application , обект Document и обект Toolbar .
За да създадете ActiveX обект, задайте обекта, върнат от CreateObject , на променлива за обект:
Забележка: Примерите по-долу илюстрират използването на тази функция във Visual Basic for Applications (VBA). За повече информация относно работата с VBA изберете Справочни материали за разработчици в падащия списък до Търсене и въведете един или няколко термина в полето за търсене.
' Declare an object variable to hold the object
' reference. Dim as Object causes late binding. Dim ExcelSheet As Object Set ExcelSheet = CreateObject("Excel.Sheet")
В този пример ще автоматизираме обект на електронна таблица на Excel от база данни на Access. Този код стартира приложението, което създава обекта, в този случай електронна таблица на Microsoft Excel. След като обектът бъде създаден, трябва да го посочите с препратка в код с помощта на обектната променлива, която сте дефинирали. В следващия пример имате достъп до свойствата и методите на новия обект, като използвате обектната променлива, ExcelSheetи други обекти на Excel, включително Application обект и Cells колекция.
' Make Excel visible through the Application object.
ExcelSheet.Application.Visible = True ' Place some text in the first cell of the sheet. ExcelSheet.Application.Cells(1, 1).Value = "This is column A, row 1" ' Save the sheet to C:\test.xls directory. ExcelSheet.SaveAs "C:\TEST.XLS" ' Close Excel with the Quit method on the Application object. ExcelSheet.Application.Quit ' Release the object variable. Set ExcelSheet = Nothing
Декларирането на обектна променлива с клаузата As Object създава променлива, която може да съдържа препратка към произволен тип обект. Обаче достъпът до обекта чрез тази променлива е закъснял; т.е. обвързването се случва, когато вашата програма се изпълнява. За да създадете обектна променлива, която води до ранно обвързване, т.е. обвързване, когато програмата е компилирана, декларирайте обектната променлива с конкретен ИД на клас. Можете например да декларирате и да създадете следните препратки към Excel:
Dim xlApp As Excel.Application
Dim xlBook As Excel.Workbook Dim xlSheet As Excel.WorkSheet Set xlApp = CreateObject("Excel.Application") Set xlBook = xlApp.Workbooks.Add Set xlSheet = xlBook.Worksheets(1)
Препратката чрез рано обвързана променлива може да даде по-добра производителност, но може да съдържа само препратка към клас, зададен в декларация.
Можете да предадете обект, върнат от функцията CreateObject , на функция, очакваща обект като аргумент. Например следният код създава и предава препратка към обект excel.Application:
Call MySub (CreateObject("Excel.Application"))
Можете да създадете обект на отдалечен мрежов компютър, като предадете името на компютъра към аргумента servername на CreateObject. Това име е същото като частта "Име на машина" на името на споделено име: за дял с име "\\MyServer\Public", името на сървъра е "MyServer".
Забележка: Вижте документацията на COM (вж. Microsoft Developer Network) за допълнителна информация относно това дадено приложение да стане видимо на отдалечен компютър в мрежа. Може да се наложи да добавите ключ от системния регистър за вашето приложение.
Следният код връща номера на версията на екземпляр на Excel, който се изпълнява на отдалечен компютър с име MyServer:
Dim xlApp As Object
Set xlApp = CreateObject("Excel.Application", "MyServer") Debug.Print xlApp.Version
Ако отдалеченият сървър не съществува или е недостъпен, ще възникне грешка по време на изпълнение.
Забележка: Използвайте CreateObject, когато няма текущ екземпляр на обекта. Ако екземпляр на обекта вече се изпълнява, се стартира нов екземпляр и се създава обект от зададения тип. За да използвате текущия екземпляр или да стартирате приложението и да заредите файл, използвайте функцията GetObject .
Ако даден обект се е регистрирал като обект от един екземпляр, се създава само един екземпляр на обекта, без значение колко пъти се изпълнява CreateObject .
Пример
Този пример използва функцията CreateObject , за да зададе препратка (
xlApp
) в Excel. Използва препратката за достъп до свойството Visible на Excel и след това използва метода Quit на Excel, за да го затвори. Накрая, самата препратка се издава.
Dim xlApp As Object ' Declare variable to hold the reference.
Set xlApp = CreateObject("excel.application") ' You may have to set Visible property to True ' if you want to see the application. xlApp.Visible = True ' Use xlApp to access Microsoft Excel's ' other objects. xlApp.Quit ' When you finish, use the Quit method to close Set xlApp = Nothing ' the application, then release the reference.