Funkcija CreateObject

Pastaba: Norėtume jums kuo greičiau pateikti naujausią žinyno turinį jūsų kalba. Šis puslapis išverstas automatiškai, todėl gali būti gramatikos klaidų ar netikslumų. Mūsų tikslas – padaryti, kad šis turinys būtų jums naudingas. Gal galite šio puslapio apačioje mums pranešti, ar informacija buvo naudinga? Čia yra straipsnis anglų kalba, kuriuo galite pasinaudoti kaip patogia nuoroda.

Pastaba: Šioje temoje aprašyta funkcija, metodas, objektas arba ypatybė yra išjungta, jei "Microsoft" Jet Expression tarnyba veikia smėlio dėžės režimu, o tai neleidžia įvertinti potencialiai nesaugių reiškinių. Norėdami gauti daugiau informacijos apie smėlio dėžės režimą, žinyne ieškokite "smėlio dėžės režimas".

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

Sintaksė

CreateObject ( klasė [, servername] )

Funkcijos CreateObject sintaksė turi tokius argumentus:

Argumentas

Aprašas

klasė

Būtina. Variant (Eilutė). Norimo sukurti objekto pavadinimas ir klasė.

servername

Pasirinktinai. Variant (Eilutė). Tinklo serverio, kuriame bus sukurtas objektas, pavadinimas. Jei servername yra tuščia eilutė (""), naudojamas vietinis kompiuteris.


Klasė _ z0z_ naudoja sintaksę appname.objekto tipo ir turi šias dalis:

Dalis

Aprašas

appname

Būtina. Variant (Eilutė). Objekto, kuriame yra objektas, pavadinimas.

objekto tipo

Būtina. Variant (Eilutė). Norimo sukurti objekto tipas arba _ z0z_ .


Pastabos

Kiekviena taikomoji programa, kuri palaiko automatizavimą, pateikia bent vieno tipo objektą. Pvz., "Word" apdorojimo taikomoji programa gali pateikti programos objektą, dokumento objektą ir įrankių juostos objektą.

Norėdami sukurti "ActiveX" objektą, priskirkite CreateObject grąžintą objektą į _ z0z_:

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 mes automatizuojame "Excel" skaičiuoklės objektą iš "Access" duomenų bazės. Šis kodas paleidžia objekto kūrimo programą, šiuo atveju – "Microsoft Excel" skaičiuoklę. Sukūrę objektą, nurodykite jį kode naudodami apibrėžtą objekto kintamąjį. Toliau pateiktame pavyzdyje galite pasiekti naujo objekto ypatybes ir metodus naudodami objekto kintamąjį, _ z0z_ir kitus "Excel" objektus, įskaitant _ z1z_ objektą ir _ z2z_ 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

Paskelbus objekto kintamąjį naudojant " _ z0z" sąlygą, sukuriamas kintamasis, kuriame gali būti nuoroda į bet kokio tipo objektą. Tačiau prieiga prie objekto per tą kintamąjį vėluoja; tai yra, susiejimas atliekamas paleidus programą. Norėdami sukurti objekto kintamąjį, kuris sukelia ankstyvą susiejimą, tai yra susiejimas, kai programa kompiliuojama, paskelbkite objekto kintamąjį su konkrečiu klasės ID. Pavyzdžiui, galite paskelbti ir kurti š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 anksti susietą kintamąjį gali suteikti geresnius rezultatus, bet gali būti tik nuoroda į _ z0z_ nurodytą _ z1z_.

Galite perduoti funkciją CreateObject grąžintą objektą į funkciją, kuri laukia objekto kaip argumento. Pvz., šis kodas sukuria ir perduoda nuorodą į Excel. Application objektą:

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

Galite sukurti objektą nuotoliniame tinklo kompiuteryje ir perduoti kompiuterio vardą CreateObjectserverio vardo argumente. Šis pavadinimas yra toks pat kaip įrenginio pavadinimo dalis bendrinimo pavadinime: bendrinamos dalies "\\Manoserver\public", servername yra "myserver".

Pastaba:  Žiūrėkite COM dokumentus (žiūrėti "Microsoft Developer Network"), jei norite, kad programa būtų rodoma nuotoliniame tinklo kompiuteryje. Jums gali tekti įtraukti taikomosios programos registro raktą.

Šis kodas pateikia programos "Excel" egzemplioriaus, kuris veikia nuotoliniame kompiuteryje, pavadintame _ z0z_, 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 laiko klaida.

Pastaba:  Naudokite CreateObject , kai nėra esamo objekto egzemplioriaus. Jei objekto egzempliorius jau paleistas, pradedamas naujas egzempliorius ir sukuriamas nurodyto tipo objektas. Norėdami naudoti dabartinį egzempliorių arba paleisti taikomąją programą ir įkelti failą, naudokite funkciją GetObject .

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

Pavyzdys

Šiame pavyzdyje funkcija CreateObject naudojama nuorodai nustatyti (

xlApp

) į "Excel". Ji naudoja nuorodą, kad pasiektų "Excel" ypatybę matomas , tada naudoja "Excel" metodą , kad jį uždarytumėte. Galiausiai, pati nuoroda yra išleista.

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.
Tobulinkite savo „Office“ įgūdžius
Ieškoti mokymo
Pirmiausia gaukite naujų funkcijų
Prisijunkite prie „Office Insider“ dalyvių

Ar ši informacija buvo naudinga?

Dėkojame už jūsų atsiliepimus!

Dėkojame už jūsų atsiliepimą! Panašu, kad gali būti naudinga jus sujungti su vienu iš mūsų „Office“ palaikymo agentų.

×