Notă: Funcția, metoda, obiectul sau proprietatea descrise în acest subiect este dezactivată dacă Serviciul de expresii Microsoft Jet 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 ( clasă [, numeserver] )
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. |
Clasa argument utilizează numele de aplicație pentru sintaxă.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 clasă obiectului de creat. |
Observații
Fiecare aplicație care acceptă automatizare 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 unui variabilă 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 automatizează 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, faceți referire la el în cod utilizând variabila de obiect pe care ați definit-o. În exemplul următor, accesați proprietățile și metodele obiectului nou utilizând variabila obiect, ExcelSheetși alte obiecte Excel, inclusiv obiectul Application și colecția de 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 această variabilă este legat târziu; mai exact, legarea are loc atunci când rulează programul. Pentru a crea o variabilă de obiect care are ca rezultat legarea timpurie, adică legarea la compilarea programului, declarați variabila obiect cu un ID de clasă specific. De exemplu, puteți declara și crea 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 printr-o variabilă legată timpuriu poate oferi o performanță mai bună, dar poate conține doar o referință la clasă specificate în declarație.
Puteți transmite un obiect returnat de funcția CreateObject unei funcții 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 aflat în rețea la distanță, transferând numele computerului la argumentul numeserver al CreateObject. Acest nume este același cu porțiunea Nume computer a unui nume de partajare: pentru o partajare numită "\\ServerulMeu\Public", numele serverului 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 aflat la distanță în 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ță denumit 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, apare 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 instanță nouă și se creează un obiect de tipul specificat. Pentru a utiliza instanța curentă sau pentru a porni aplicația și a o face să încarce 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 din Excel, apoi utilizează metoda Excel Quit pentru a o închide. În sfârșit, referința în sine este lansată.
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.