Funktsioon CreateObject

Rakenduskoht
Microsoft 365 rakendus Access Access 2024 Access 2021 Access 2019 Access 2016

Märkus.

Kui Microsoft Jet Expression Service töötab liivakastirežiimis, mis takistab potentsiaalselt ebaturvaliste avaldiste väärtustamist, on käesolevas artiklis kirjeldatud funktsioon, meetod, objekt või atribuut keelatud. Liivakastirežiimi kohta lisateabe saamiseks otsige spikrist sõna „liivakastirežiim”.

Loob ja tagastab ActiveX-objekti viite.

Süntaks

CreateObject(class [, servername] )

Funktsiooni CreateObject süntaksil on järgmised argumendid.

Argument Kirjeldus
class Nõutav. Variant (String). Rakenduse nimi ja loodava objekti klass.
servername Valikuline. Variant (String). Võrguserveri nimi, kuhu objekt luuakse. Kui servername on tühi string (""), kasutatakse kohalikku arvutit.

    

Argument classkasutab süntaksit appname.objecttype ja selle osad on järgmised.

Osa Kirjeldus
rakendusenimi Nõutav. Variant (String). Objekti võimaldava rakenduse nimi.
objektitüüp Nõutav. Variant (String). Loodava objekti tüüp või klass.

    

Kommentaarid

Igas rakenduses, mis toetab automatiseerimist, on olemas vähemalt üht tüüpi objekte. Näiteks tekstitöötlusrakenduses võib olla objekt Application, objekt Document ja objekt Toolbar.

ActiveX-objekti loomiseks määrake funktsiooni CreateObject tagastatud objekt objektimuutujale:

Märkus.

Järgmised näited kujutavad selle funktsiooni kasutamist rakenduse Visual Basic for Applications (VBA) moodulis. Lisateabe saamiseks VBA-ga töötamise kohta valige välja Otsing kõrval kuvatavast ripploendist väärtus Tootearendusmaterjal ja sisestage otsinguväljale üks või mitu sõna.

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

Selles näites automatiseerime Exceli arvutustabeli objekti Accessi andmebaasist. See kood käivitab rakenduse, mis loob objekti, praegusel juhul Microsoft Exceli arvutustabeli. Kui objekt on loodud, siis viitate sellele koodis, kasutades enda määratletud objektimuutujat. Järgmises näites kasutate uue objekti atribuutidele ja meetoditele juurdepääsuks objektimuutujat ExcelSheetja muid Exceli objekte (sh Application objekti ja kogumeid 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

Objektimuutuja deklareerimine klausliga As Object loob muutuja, mis võib sisaldada viidet mis tahes tüüpi objektile. Siiski on selle muutuja kaudu juurdepääs sellele objektile hiliselt seotud, see tähendab, et sidumine toimub siis, kui programm käivitatakse. Sellise objektimuutuja loomiseks, mille korral toimuks varane sidumine ehk sidumine programmi kompileerimise ajal, deklareerige objektimuutuja konkreetse klassi ID-ga. Näiteks saate deklareerida ja luua järgmised Exceli viited:

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)

Viide varases köidetud muutujas võib anda parema jõudluse, kuid võib sisaldada ainult viidet deklaratsioonis määratud klassile.

Funktsiooni CreateObject tagastatud objekti saab edastada funktsioonile, mis eeldab argumendiks objekti. Näiteks loob ja edastab järgmine kood viite objektile Excel.Application:

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

Objekti saate luua kaugvõrguga arvutis, edastades arvuti nime argumendile CreateObjectserverinimi. See nimi on sama, mis ühiskasutusnime osa Arvuti nimi: võrguketta "\\MyServer\Public" jaoks on serverinimi "MyServer".

Märkus.

Lisateavet selle kohta, kuidas muuta rakendus nähtavaks kaugvõrguarvutis, leiate COM-i dokumentatsioonist (vt Microsoft Developer Network). Võimalik, et peate oma rakendusele lisama registrivõtme.

Järgmine kood tagastab kaugarvutis MyServertöötava Exceli eksemplari versiooninumbri:

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

Kui kaugserverit pole olemas või kaugserver pole saadaval, ilmneb käitustõrge.

Märkus.

Kasutage funktsiooni CreateObject siis, kui objekti praegust eksemplari pole. Kui objekti eksemplar juba töötab, käivitatakse uus eksemplar ja luuakse määratud tüüpi objekt. Praeguse eksemplari kasutamiseks või rakenduse käivitamiseks ja sellesse faili laadimiseks kasutage funktsiooni GetObject.

Juhul kui objekt on registreeritud üheeksemplarise objektina, luuakse ainult üks objekti eksemplar, olenemata sellest, mitu korda funktsiooni CreateObject käivitatakse.

Näide

Selles näites kasutatakse funktsiooni CreateObject, et määrata viide (

xlApp

) Excelile. Siin kasutatakse seda viidet Exceli atribuudile Visible juurdepääsemiseks ja seejärel kasutatakse Exceli meetodit Quit selle sulgemiseks. Lõpetuseks vabastatakse viide ise.

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.