Megjegyzés
A témakörben ismertetett függvény, metódus, objektum vagy tulajdonság le van tiltva, ha a Microsoft Jet Expression Service védőfalas üzemmódban fut, mivel ez megakadályozza az esetleg nem biztonságos kifejezések kiszűrését. A védőfalas üzemmódról a súgóban a „védőfalas üzemmód” kifejezésre keresve talál további információt.
ActiveX-objektumra mutató hivatkozást hoz létre és ad eredményül.
Szintaxis
CreateObject(osztály [, kiszolgálónév] )
A CreateObject függvény argumentumai a következők:
| Argumentum | Leírás: |
|---|---|
| osztály | Kötelező megadni. Variáns (Karakterlánc). A létrehozandó objektum alkalmazásneve és osztálya. |
| kiszolgálónév | Nem kötelező. Variáns (Karakterlánc). Annak a hálózati kiszolgálónak a neve, ahol létre szeretné hozni az objektumot. Ha a kiszolgálónév egy üres karakterlánc (""), akkor a helyi számítógépet használja a program. |
Az osztályargumentum az appname.objecttype szintaxist használja, és az alábbi részekből áll:
| Rész | Leírás: |
|---|---|
| appnév | Kötelező megadni. Variáns (Karakterlánc). Az objektumot megadó alkalmazás neve. |
| objektumtípus | Kötelező megadni. Változó (karakterlánc). A létrehozandó objektum típusa vagy osztálya. |
Megjegyzések
Minden automatizmust támogató alkalmazás szolgáltat legalább egy objektumtípust. Egy szövegszerkesztő alkalmazás például szolgáltathat Alkalmazás, Dokumentum és Eszköztár objektumot.
ActiveX-objektum létrehozásához rendelje a CreateObject által visszaadott objektumot egy objektumváltozóhoz:
Megjegyzés
A következő példák egy Visual Basic for Applications (VBA) modulban mutatják be a függvény használatát. A VBA használatáról a Keresés elem mellett található legördülő listából a fejlesztői forrásokat választva, majd egy vagy több keresőszót megadva kaphat további tájékoztatást.
' Declare an object variable to hold the object
' reference. Dim as Object causes late binding.
Dim ExcelSheet As Object
Set ExcelSheet = CreateObject("Excel.Sheet")
Ebben a példában egy Excel-számolótábla-objektumot automatizálunk egy Access-adatbázisból. A kód elindítja az objektumot létrehozó alkalmazást, ebben az esetben egy Microsoft Excel-számolótáblát. Miután létrehozott egy objektumot, az Ön által megadott objektumváltozó használatával hivatkozik rá a kódban. Az alábbi példában az új objektum tulajdonságaihoz és metódusaihoz az objektumváltozó használatával férhet hozzá, ExcelSheetcsakúgy, mint más Excel-objektumokhoz, beleértve az objektumot Application és a gyűjteményt 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
Amikor a As Object záradékkal deklarál egy objektumváltozót, létrejön egy változó, amely bármilyen típusú objektumra mutató hivatkozást tartalmazhat. Az objektumnak ezzel a változóval történő elérése azonban késői kötésű, vagyis a kötés a program futásakor jön létre. Ha olyan objektumváltozót szeretne létrehozni, amely korai kötést eredményez, tehát a program összeállításakor történő kötést, akkor deklarálja az objektumváltozót egy egyedi osztályazonosítóval. Deklarálhatók és létrehozhatók például az alábbi Excel-hivatkozások:
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)
A korai kötöttségű változón keresztüli hivatkozás jobb teljesítményt biztosít, de csak a deklarációban meghatározott osztályra mutató hivatkozást tartalmazhat.
A CreateObject függvény által eredményül adott objektumot át lehet adni olyan függvénynek, amely objektumot vár argumentumként. A következő kód például létrehoz egy hivatkozást, és átadja egy Excel.Application objektumnak:
Call MySub (CreateObject("Excel.Application"))
Egy távoli hálózati számítógépen úgy hozhat létre objektumot, hogy átadja a számítógép nevét az ObjektumLétrehozásaArgumentumának. Ez a név megegyezik a megosztás Gépnév részével: a \\SajátKiszolgáló\Nyilvános nevű megosztás esetén a kiszolgálónév "SajátKiszolgáló".
Megjegyzés
További információt arról, hogyan lehet alkalmazásokat láthatóvá tenni távoli hálózati számítógépeken a COM-dokumentációban (lásd a Microsoft Developer Network hálózatot) talál. Elképzelhető, hogy létre kell hozni egy beállításkulcsot az alkalmazásnak.
Az alábbi kód egy olyan Excel-példány verziószámát adja vissza, amely egy következő nevű távoli MyServerszámítógépen fut:
Dim xlApp As Object
Set xlApp = CreateObject("Excel.Application", "MyServer")
Debug.Print xlApp.Version
Ha a távoli kiszolgáló nem létezik vagy nem érhető el, futási idejű hiba lép fel.
Megjegyzés
Ha az objektumnak nincs aktuális példánya, akkor használja a CreateObject függvényt. Ha az objektumnak már fut egy példánya, elindul egy új példány, és létrejön egy megadott típusú objektum. Ha az aktuális példányt szeretné használni, vagy el szeretné indítani az alkalmazást, hogy betöltsön egy fájlt, használja a GetObject függvényt.
Ha egy objektum egypéldányos objektumként regisztrálta be magát, csak egyetlen példány jön létre az objektumból, függetlenül attól, hogy a CreateObject hányszor lett végrehajtva.
Példa
Az alábbi példában a CreateObject függvény létrehoz egy hivatkozást (
xlApp
), amely az Excelre mutat. Ezután a hivatkozás segítségével hozzáférhet az Excel Látható tulajdonságához, majd az Excel Kilépés metódusával bezárhatja. Végül a hivatkozás is ki lesz engedve.
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.