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. |
argument klass kasutab süntaksit appname.objecttype ja koosneb järgmistest osadest:
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, 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.