Функція CreateObject

Примітка.: Функція, метод, об’єкт або властивість, описана в цьому розділі, недоступна, якщо Microsoft Jet Expression Service працює в режимі ізольованого програмного середовища, що запобігає обчисленню потенційно небезпечних виразів. Щоб отримати докладні відомості про режим ізольованого програмного середовища, у вікні довідки шукайте за запитом "режим ізольованого програмного середовища".

Створює й повертає посилання на об’єкт ActiveX.

Синтаксис

CreateObject ( class [, servername] )

Синтаксис функції CreateObject має такі аргументи:

Аргумент

Опис

class

Обов’язковий аргумент. Дані типу Variant (String). Ім’я програми та клас об’єкта, який потрібно створити.

servername

Необов’язковий аргумент. Дані типу Variant (String). Ім’я мережевого сервера, на якому буде створено об’єкт. Якщо аргумент servername – це пустий рядок (""), використовується локальний комп’ютер.


Аргумент class використовує синтаксис appname.objecttype і складається з таких частин:

Частина

Опис

appname

Обов’язковий аргумент. Дані типу Variant (String). Ім’я програми, що надає об’єкт.

objecttype

Обов’язковий аргумент. Дані типу 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")

Цей код запускає програму, яка створює об’єкт, у цьому випадку – електронну таблицю Microsoft Office Excel 2007. Коли об’єкт створено, ви посилаєтеся на нього в коді за допомогою визначеної вами змінної об’єкта. У наведеному нижче прикладі ви отримуєте доступ до властивостей і методів нового об’єкта за допомогою змінної об’єкта, 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" аргумент servername – це "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. Тут використовується посилання для доступу до властивості Visible у програмі Excel, а потім – метод Excel Quit для її закриття. Врешті випускається саме посилання.

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.
Удосконалення навичок роботи з Office
Ознайомтеся з навчальними матеріалами
Отримуйте нові функції раніше за інших
Приєднайтеся до оцінювачів Office

Ця інформація корисна?

Дякуємо за ваш відгук!

Дякуємо за відгук! Схоже, вам може стати в нагоді допомога одного з наших спеціалістів служби підтримки Office, з яким ми вас можемо з’єднати.

×