Funcția CreateObject

Se aplică la
Access pentru Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

Notă

Funcția, metoda, obiectul sau proprietatea descrisă în acest subiect este dezactivată dacă Microsoft Jet Expression Service rulează în modul sandbox, ceea ce împiedică evaluarea expresiilor potențial nesigure. Pentru mai multe informații despre modul sandbox, căutați "modul sandbox" în Ajutor.

Creează și returnează o referință la un obiect ActiveX.

Sintaxă

CreateObject(class [, servername] )

Sintaxa funcției CreateObject are următoarele argumente:

Argument Descriere
clasă Obligatoriu. Variant (șir). Numele aplicației și clasa obiectului de creat.
numeserver Opțional. Variant (șir). Numele serverului de rețea unde va fi creat obiectul. Dacă servername este un șir gol (""), se utilizează computerul local.

    

Argumentul clasăutilizează sintaxa appname.objecttype și are următoarele componente:

Parte Descriere
Nume aplicație Obligatoriu. Variant (șir). Numele aplicației care furnizează obiectul.
tip obiect Obligatoriu. Variant (șir). Tipul sau clasa obiectului de creat.

    

Observații

Fiecare aplicație care acceptă automatizarea oferă cel puțin un tip de obiect. De exemplu, o aplicație de procesare a textului poate furniza un obiect Aplicație , un obiect Document și un obiect Bară de instrumente .

Pentru a crea un obiect ActiveX, atribuiți obiectul returnat de CreateObject unei variabile de obiect:

Notă

Exemplele care urmează demonstrează utilizarea acestei funcții într-un modul Visual Basic for Applications (VBA). Pentru mai multe informații despre lucrul cu VBA, selectați Referințe pentru dezvoltatori în lista verticală de lângă Căutare și introduceți unul sau mai mulți termeni în caseta de căutare.

' Declare an object variable to hold the object 
' reference. Dim as Object causes late binding. 
Dim ExcelSheet As Object
Set ExcelSheet = CreateObject("Excel.Sheet")

În acest exemplu, vom automatiza un obiect foaie de calcul Excel dintr-o bază de date Access. Acest cod pornește aplicația care creează obiectul, în acest caz, o foaie de calcul Microsoft Excel. După ce este creat un obiect, puteți face referire la acesta în cod utilizând variabila obiect pe care ați definit-o. În exemplul următor, accesați proprietățile și metodele noului obiect utilizând variabila obiect și alte obiecte Excel, ExcelSheetinclusiv Application obiectul și colecția 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

Declararea unei variabile obiect cu clauza As Object creează o variabilă care poate conține o referință la orice tip de obiect. Cu toate acestea, accesul la obiect prin variabila respectivă este legat târziu; Mai exact, legarea are loc atunci când se execută programul. Pentru a crea o variabilă obiect care are ca rezultat legarea timpurie, adică legarea atunci când programul este compilat, declarați variabila obiect cu un ID de clasă specific. De exemplu, puteți să declarați și să creați următoarele referințe 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)

Referința prin intermediul unei variabile cu legare timpurie poate oferi o performanță mai bună, dar poate conține doar o referință la clasa specificată în declarație.

Puteți transfera un obiect returnat de funcția CreateObject către o funcție care așteaptă un obiect ca argument. De exemplu, următorul cod creează și transmite o referință la un obiect Excel.Application:

Call MySub (CreateObject("Excel.Application"))

Puteți crea un obiect pe un computer conectat la distanță în rețea, prin transmiterea numelui computerului la argumentul numeserveral CreateObject. Acel nume este același cu porțiunea Nume mașină a unui nume de partajare: pentru o partajare denumită "\\ServerMeu\Public", servername este "ServerulMeu".

Notă

Consultați documentația COM (consultați Rețeaua Microsoft pentru dezvoltatori) pentru informații suplimentare despre cum să faceți o aplicație vizibilă pe un computer conectat la distanță într-o rețea. Poate fi necesar să adăugați o cheie de registry pentru aplicația dvs.

Următorul cod returnează numărul de versiune al unei instanțe de Excel care rulează pe un computer la distanță numit MyServer:

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

Dacă serverul la distanță nu există sau nu este disponibil, se produce o eroare la momentul rulării.

Notă

Utilizați CreateObject atunci când nu există nicio instanță curentă a obiectului. Dacă o instanță a obiectului rulează deja, este pornită o nouă instanță și se creează un obiect de tipul specificat. Pentru a utiliza instanța curentă sau pentru a porni aplicația și a încărca un fișier, utilizați funcția GetObject .

Dacă un obiect s-a înregistrat ca obiect cu o singură instanță, se creează o singură instanță a obiectului, indiferent de câte ori se execută CreateObject .

Exemplu

Acest exemplu utilizează funcția CreateObject pentru a seta o referință (

xlApp

) în Excel. Utilizează referința pentru a accesa proprietatea Visible a aplicației Excel , apoi utilizează metoda Excel Quit pentru a o închide. În cele din urmă, referința în sine este eliberată.

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.