CreateObject-funktio

Käytetään kohteeseen
Access for Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

Huomautus

Tässä ohjeaiheessa kuvattu funktio, menetelmä, objekti tai ominaisuus ei ole käytössä, jos Microsoft Jet Expression Service toimii eristetyssä tilassa, mikä estää mahdollisesti vahingollisten lausekkeiden arvioimisen. Katso lisätietoja eristetystä tilasta ohjeen ”Eristetty tila” -kohdasta.

Luo ja palauttaa viittauksen ActiveX-objektiin.

Syntaksi

CreateObject(luokka [, palvelimennimi] )

CreateObject-funktion syntaksilla on seuraavat argumentit:

Argumentti Kuvaus
luokka Pakollinen. Variantti (merkkijono). Sovelluksen nimi ja luotavan objektin luokka.
palvelinnimi Valinnainen. Variantti (merkkijono). Sen verkkopalvelimen nimi, johon objekti luodaan. Jos palvelinnimi on tyhjä merkkijono (""), käytetään paikallista tietokonetta.

    

Luokka-argumenttikäyttää syntaksia appname.objecttype ja sisältää seuraavat osat:

Osa Kuvaus
sovelluksen nimi Pakollinen. Muuttuja (merkkijono). Sen sovelluksen nimi, joka toimittaa objektin.
objektilaji Pakollinen. Muuttuja (merkkijono). Luotavan objektin laji tai luokka.

    

Huomautuksia

Jokaisessa automaattisia toimintoja tukevassa sovelluksessa on vähintään yksi objektilaji. Esimerkiksi tekstinkäsittelyohjelmassa voi olla Sovellus-objekti, Asiakirja-objekti ja Työkalurivi-objekti.

Voit luoda ActiveX-objektin määrittämällä CreateObject-objektin palauttamalle objektille objektimuuttujan:

Huomautus

Seuraavissa esimerkeissä kerrotaan, kuinka tätä funktiota käytetään Visual Basic for Applications (VBA) -moduulissa. Jos haluat lisätietoja VBA:n käytöstä, valitse Sovelluskehittäjän opasHaku-kentän viereisestä luettelosta ja anna yksi tai useampi hakuehto hakukenttään.

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

Tässä esimerkissä automatisoidaan Excel-laskentataulukko-objekti Access-tietokannasta. Tämä koodi käynnistää sovelluksen ja luo objektin, tässä tapauksessa Microsoft Excel -laskentataulukon. Kun objekti on luotu, voit viitata siihen koodissa käyttämällä määrittämääsi objektimuuttujaa. Seuraavassa esimerkissä käytät uuden objektin ominaisuuksia ja menetelmiä käyttämällä objektimuuttujaa ExcelSheetsekä muita Excel-objekteja, kuten objektia Application ja kokoelmaa 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

Kun objektimuuttuja määritellään lauseella As Object , ohjelma muodostaa muuttujan, joka voi sisältää viittauksen kaikkiin objektilajeihin. Kun objektia käytetään kyseisen muuttujan välityksellä, sidonta on suorituksenaikainen, eli sidonta tapahtuu, kun ohjelma suoritetaan. Jos haluat luoda objektimuuttujan, jota käytettäessä sidonta on käännöksenaikaista, eli sidonta tapahtuu ohjelman käännöksen aikana, esittele objektimuuttuja tietyllä luokkatunnuksella. Voit esimerkiksi määritellä ja luoda seuraavat Excel-viittaukset:

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)

Alkusidotun muuttujan kautta tehty viittaus voi antaa paremman suorituskyvyn, mutta se voi sisältää ainoastaan viittauksen määrittelyssä määritettyyn luokkaan.

Voit välittää CreateObject-funktion palauttaman objektin funktioon, joka odottaa argumentiksi objektia. Esimerkiksi Excel.Application-objektin viittaus luodaan ja välitetään seuraavalla koodilla:

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

Voit luoda objektin verkossa olevaan etätietokoneeseen välittämällä tietokoneen nimen CreateObject-työkalunpalvelinnimi-argumenttiin. Nimi on sama kuin jakonimen Koneen nimi -osa: jaetun resurssin kohdalla nimeltä \\MyServer\ Public servername on "MyServer".

Huomautus

Lisätietoja verkossa olevan etätietokoneen sovelluksen määrittämisestä näkyväksi on COM-ohjeissa (Microsoft Developer Network -sivustossa). Ohjeiden käyttäminen voi edellyttää, että lisäät sovellukselle rekisteriavaimen.

Seuraava koodi palauttaa etätietokoneessa MyServer: suoritettavan Excel-esiintymän versionumeron

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

Jos etäpalvelinta ei ole tai se ei ole käytettävissä, tapahtuu suorituksenaikainen virhe.

Huomautus

Käytä CreateObject-funktiota, kun objektilla ei ole nykyistä esiintymää. Jos objektin esiintymä on jo käynnissä, uusi esiintymä käynnistetään ja määritetyn tyyppinen objekti luodaan. Jos haluat käyttää nykyistä esiintymää tai käynnistää sovelluksen ja määrittää sen lataamaan tiedoston, käytä GetObject-funktiota.

Jos objekti on rekisteröinyt itsensä yhden esiintymän objektiksi, objektin esiintymiä luodaan vain yksi huolimatta siitä, kuinka monta kertaa CreateObject-funktio suoritetaan.

Esimerkki

Tässä esimerkissä CreateObject-funktiota käytetään määrittämään viittaus (

xlApp

) Exceliin. Funktio käyttää viittauksen avulla Excelin Visible-ominaisuutta ja sulkee sen sitten Excelin Quit-menetelmällä. Lopuksi itse viittaus vapautetaan.

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.