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(class [, servername] )
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 sztring (""), a rendszer a helyi számítógépet használja. |
Az osztályargumentumaz 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 hozzá 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. 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. A következő példában az új objektum tulajdonságaihoz és metódusaihoz fér hozzá a objektumváltozóval , ExcelSheetés más Excel-objektumokkal, beleértve az objektumot és a Application gyűjteményt Cells is.
' 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
Az objektumváltozó záradékkal As Object történő deklarálása olyan változót hoz létre, amely bármilyen típusú objektumra hivatkozhat. 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ón keresztüli hivatkozás jobb teljesítményt nyújthat, 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 úgy hozhat létre objektumot, hogy átadja a számítógép nevét a CreateObjectkiszolgálónév argumentumának. Ez a név megegyezik a megosztás nevének Gépnév részével: a "\\MyServer\Public" nevű megosztás esetén a kiszolgáló neve "MyServer".
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.
A következő kód egy nevű távoli számítógépen MyServerfutó 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.