Забележка
Функцията, методът, обектът или свойството, описани в тази тема, са забранени, ако услугата за изрази 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.