Funkcija CreateObject

Taikoma
„Access“, skirta „Microsoft 365“ „Access 2024“ Access 2021 Access 2019 Access 2016

Pastaba

Šioje temoje aprašyta funkcija, metodas, objektas arba ypatybė išjungiama, jei "„Microsoft“ Jet" reiškinių tarnyba veikia smėlio dėžės režimu, kuris neleidžia įvertinti potencialiai nesaugių reiškinių. Daugiau informacijos apie smėlio dėžės režimą ieškokite žinyne "smėlio dėžės režimas".

Sukuria ir pateikia nuorodą į "ActiveX" objektą.

Sintaksė

CreateObject(klasė [, serverio vardas] )

Funkcijos "CreateObject " sintaksė turi tokius argumentus:

Argumentas Aprašymas
klasė Būtinas. Variantas (eilutė). Kuriamo objekto taikomosios programos pavadinimas ir klasė.
serverio vardas Pasirinktinis. Variantas (eilutė). Tinklo serverio, kuriame bus sukurtas objektas, vardas. Jei serverio vardas yra tuščia eilutė (""), naudojamas vietinis kompiuteris.

    

Klasėsargumentas naudoja sintaksę appname.objecttype ir jį sudaro šios dalys:

Dalis Aprašymas
programos pavadinimas Būtinas. Variantas (eilutė). Taikomosios programos, teikiančios objektą, pavadinimas.
objekto tipas Būtinas. Variantas (eilutė). Kuriamo objekto tipas arba klasė.

    

Pastabos

Kiekviena automatizavimą palaikanti programa pateikia bent vieno tipo objektus. Pvz., teksto apdorojimo programa gali pateikti Taikomosios programos , Dokumento ir Įrankių juostos objektus.

Norėdami sukurti "ActiveX" objektą, priskirkite " CreateObject " grąžintą objektą objekto kintamajam:

Pastaba

Pateiktuose pavyzdžiuose parodyta, kaip naudoti šią funkciją „Visual Basic for Applications“ (VBA) modulyje. Daugiau informacijos apie darbą su VBA rasite išplečiamajame sąraše pasirinkę Kūrėjų nuoroda (šalia Ieškos) ir ieškos lauke įvedę vieną ar daugiau sąlygų.

' Declare an object variable to hold the object 
' reference. Dim as Object causes late binding. 
Dim ExcelSheet As Object
Set ExcelSheet = CreateObject("Excel.Sheet")

Šiame pavyzdyje automatizuosime "Excel" skaičiuoklės objektą iš "Access" duomenų bazės. Šis kodas paleidžia taikomąją programą, sukurdama objektą, šiuo atveju – "Microsoft Excel" skaičiuoklę. Sukūrę objektą, nurodote jį kode naudodami apibrėžtą objekto kintamąjį. Šiame pavyzdyje galite pasiekti naujo objekto ypatybes ir metodus naudodami objekto kintamąjį ExcelSheetir kitus "Excel" objektus, įskaitant Application objektą ir Cells rinkinį.

' 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

Deklaruojant objekto kintamąjį naudojant As Object sąlygą sukuriamas kintamasis, kuriame gali būti nuoroda į bet kokio tipo objektą. Tačiau prieiga prie objekto per tą kintamąjį yra pavėluota; Tai yra susiejimas įvyksta, kai vykdoma programa. Norėdami sukurti objekto kintamąjį, kuris lemia ankstyvą susiejimą, tai yra, susiejimą, kai programa kompiliuojama, deklaruokite objekto kintamąjį su konkrečiu klasės ID. Pavyzdžiui, galite deklaruoti ir sukurti šias "Excel" nuorodas:

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)

Nuoroda per ankstyvą susietąjį kintamąjį gali duoti geresnį našumą, bet joje gali būti tik nuoroda į deklaracijoje nurodytą klasę.

Funkciją "CreateObject " grąžintą objektą galite perduoti funkcijai, kuri tikisi, kad objektas bus gautas kaip argumentas. Pavyzdžiui, šis kodas sukuria ir perduoda nuorodą į objektą Excel.Application:

Call MySub (CreateObject("Excel.Application"))

Galite sukurti objektą nuotoliniame tinklo kompiuteryje perduodami kompiuterio vardą į CreateObjectserverio pavadinimo argumentą. Šis pavadinimas yra toks pat kaip bendrinamo kompiuterio pavadinimo kompiuterio pavadinimas: bendrinimo, pavadinto "\\MyServer\Public", serverio vardas yra "MyServer".

Pastaba

Papildomos informacijos, kaip padaryti programą matomą nuotoliniame tinklo kompiuteryje, ieškokite COM dokumentacijoje (žr. "Microsoft" kūrėjų tinklas). Gali tekti įtraukti registro raktą savo taikomajai programai.

Šis kodas grąžina "Excel" egzemplioriaus, veikiančio nuotoliniame kompiuteryje pavadinimu MyServer, versijos numerį:

Dim xlApp As Object
Set xlApp = CreateObject("Excel.Application", "MyServer")
Debug.Print xlApp.Version

Jei nuotolinio serverio nėra arba jis nepasiekiamas, įvyksta vykdymo klaida.

Pastaba

Naudokite CreateObject , kai nėra dabartinio objekto egzemplioriaus. Jei objekto egzempliorius jau veikia, paleidžiamas naujas egzempliorius ir sukuriamas nurodyto tipo objektas. Norėdami naudoti dabartinį egzempliorių arba paleisti programą ir įkelti failą, naudokite funkciją GetObject .

Jei objektas užregistruotas kaip vieno egzemplioriaus objektas, sukuriamas tik vienas objekto egzempliorius, nesvarbu, kiek kartų " CreateObject " vykdoma.

Pavyzdys

Šiame pavyzdyje naudojama funkcija CreateObject nuorodai nustatyti (

xlApp

) į "Excel". Jis naudoja nuorodą, kad pasiektų "Excel" ypatybę Matoma , tada naudoja "Excel " uždarymo metodą, kad ją uždarytų. Galiausiai paskelbiama pati nuoroda.

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.