Функция CreateObject

Отнася се за
Access за Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

Забележка

Функцията, методът, обектът или свойството, описани в тази тема, са забранени, ако услугата за изрази Microsoft Jet се изпълнява в ограничителен режим, което пречи на изчисляването на потенциално опасни изрази. За повече информация относно ограничителния режим потърсете "ограничителен режим" в помощта.

Създава и връща препратка към ActiveX обект.

Синтаксис

CreateObject(клас [, име на сървър] )

Синтаксисът на функцията CreateObject има следните аргументи:

Аргумент Описание
клас Задължително. Variant (String). Името на приложението и класа на обекта, който ще бъде създаден.
име на сървър Незадължително. Variant (String). Името на мрежовия сървър, където ще бъде създаден обектът. Ако servername е празен низ (""), се използва локалният компютър.

    

Аргументът на класаизползва синтаксиса appname.objecttype и има следните части:

Част Описание
Име на приложение Задължително. Variant (String). Името на приложението, предоставящо обекта.
тип обект Задължително. Variant (String). Типът или класът на обекта, който искате да създадете.

    

Забележки

Всяко приложение, което поддържа автоматизация, предоставя поне един тип обект. Например приложение за текстообработка може да предоставя обект на приложение , обект документ и обект на лента с инструменти .

За да създадете 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. След като даден обект е създаден, вие го посочвате в код, като използвате дефинираната променлива на object. В следващия пример получавате достъп до свойствата и методите на новия обект с помощта на променливата object, 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) за допълнителна информация как да направите приложение видимо на отдалечен компютър, свързан в мрежа. Може да се наложи да добавите ключ от системния регистър за вашето приложение.

Следващият код връща номера на версията на екземпляр на Excel, изпълняван на отдалечен компютър с име MyServer:

Dim xlApp As Object
Set xlApp = CreateObject("Excel.Application", "MyServer")
Debug.Print xlApp.Version

Ако отдалеченият сървър не съществува или не е достъпен, възниква грешка по време на изпълнение.

Забележка

Използвайте CreateObject, когато няма текущ екземпляр на обекта. Ако вече се изпълнява екземпляр на обекта, стартира се нов екземпляр и се създава обект от зададения тип. За да използвате текущия екземпляр или за да стартирате приложението и то да зареди файл, използвайте функцията GetObject .

Ако даден обект се е регистрирал като еднократен обект, създава се само един екземпляр на обекта, без значение колко пъти се изпълнява CreateObject .

Пример

Този пример използва функцията CreateObject , за да зададете препратка (

xlApp

) в Excel. Той използва препратката, за да получи достъп до свойството "Видима " на Excel и след това използва метода " Излизане от 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.