Funktsioon CreateObject

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 argument servername on tühi string (""), kasutatakse kohalikku arvutit.


Argumendis class kasutatakse süntaksit appname.objecttype. Süntaks koosneb järgmistest osadest.

Osa

Kirjeldus

appname

Nõutav. Variant (String). Objekti võimaldava rakenduse nimi.

objecttype

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")

See kood käivitab rakenduse, mis loob objekti, praegusel juhul Microsoft Office Excel 2007 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, ExcelSheeti ja teisi Exceli objekte, sealhulgas objekti Application ja kogumit 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 saab 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)

Viitamine varaselt seotud muutuja kaudu võib anda parema jõudluse, kuid saab sisaldada viidet ainult 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"))

Saate objekti luua kaugvõrgus olevas arvutis, edastades selleks arvuti nime funktsiooni CreateObject argumendile servername. See nimi on sama, mis arvuti nimi võrguketta nimes: võrguketta „\\MyServer\Public“ korral on argumendi servername väärtus „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, mille nimi on MyServer, töötava Exceli eksemplari versiooni numbri.

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.
Täiendage oma oskusi
Tutvuge koolitusmaterjalidega
Kasutage uusi funktsioone enne teisi
Liituge Office Insideri programmiga

Kas sellest teabest oli abi?

Täname tagasiside eest!

Täname tagasiside eest! Tundub, et võiksime teid kokku viia ühega meie Office'i tugiagentidest, kes aitab teil probleemi lahendada.

×