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 nulla hosszúságú karakterlánc (""), akkor a helyi számítógépet használja a program. |
Az osztályargumentum az appnév.objektumtípus szintaxist használják, és az alábbi részekből állnak:
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. Variáns (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.
Ha létre szeretne hozni egy ActiveX-objektumot, a CreateObject által eredményül adott objektumot rendelje hozzá 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. Ez 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 ExcelSheet-objektumváltozóval lehet hozzáférni, csakúgy, mint más Excel-objektumokhoz, többek közt az Application-objektumhoz és a Cells-gyűjteményhez.
' 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 az As Object-záradékkel 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ésű változóval történő hivatkozás jobb teljesítményt eredményezhet, de csak a deklarációban megadott osztályra mutató hivatkozást tartalmazhat.
A CreateObject függvény által visszaadott objektumot átadhatja egy függvénynek, amely egy objektumot vár argumentumként. A következő kód például létrehoz és átad egy hivatkozást egy Excel.Application objektumnak:
Call MySub (CreateObject("Excel.Application"))
Távoli hálózati számítógépen is létre lehet hozni objektumot a számítógép nevének a CreateObject függvény kiszolgálónév argumentumának való átadásával. A név megegyezik egy megosztott név gépnév részével – ha például a megosztott név „\\kiszolgáló\nyilvános”, akkor a kiszolgálónév „kiszolgá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 MyServer nevű távoli számítógépen futó Excel-példány verziószámát adja vissza:
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.