Funktionen CreateObject

Vigtigt: Denne artikel er maskinoversat. Se ansvarsfraskrivelsen. Du kan finde den engelske version af denne artikel her til din orientering.

Bemærk: Den funktion, metode, objekt eller egenskab, der er beskrevet i dette emne er deaktiveret, hvis Microsoft Jet Expression Service kører i sandkassetilstand, hvilket forhindrer evaluering af potentielt usikre udtryk. Du kan finde flere oplysninger om sandkassetilstand, søge efter "sandkassetilstand" i Hjælp.

Opretter og returnerer en reference til et ActiveX-objekt.

Syntaks

CreateObject ( klasse [, servernavn] )

Syntaksen for funktionen CreateObject har følgende argumenter:

Argument

Beskrivelse

class

Påkrævet. Variant (String). Programnavnet og klassen for det objekt, der skal oprettes.

servername

Valgfri. Variant (String). Navnet på den netværksserver, hvor objektet oprettes. Hvis servername er en tom streng (""), anvendes den lokale computer.


argumentclass anvender syntaksen appname.objecttype og består af følgende dele:

Del

Beskrivelse

appname

Påkrævet. Variant (String). Navnet på det program, der leverer objektet.

objecttype

Påkrævet. Variant (String). Typen eller klasse af det objekt, der skal oprettes.


Bemærkninger

Alle de programmer, der understøtter automatisering, indeholder mindst én type objekt. Et tekstbehandlingsprogram kan f.eks. indeholde et programobjekt, et dokumentobjekt og et værktøjslinjeobjekt.

Et ActiveX-objekt oprettes ved at tildele det objekt, der returneres af CreateObject, til en objektvariabel:

Bemærk: Følgende eksempler demonstrerer brugen af denne funktion i et VBA-modul (Visual Basic for Applications). Hvis du vil have mere at vide om at arbejde med VBA, skal du vælge Udviklerreference på rullelisten ud for Søg og skrive ét eller flere ord i søgefeltet.

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

Denne kode starter det program, opretter objektet, i dette tilfælde et Microsoft Office Excel 2007 regneark. Når der oprettes et objekt, referere du til den kode, ved hjælp af den objektvariabel, du har defineret. I eksemplet nedenfor har du adgang til egenskaber og metoder for det nye objekt ved hjælp af objektvariablen, ExcelSheetog andre Excel-objekter, herunder objektet Application og samlingen 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

Når der oprettes en objektvariabel med delsætningen As Object, oprettes der en variabel, der kan indeholde en henvisning til en hvilken som helst type objekt. Adgang til objektet via denne variabel sker dog med sen binding, dvs. at bindingen sker, når programmet køres. Hvis du vil oprette en objektvariabel, der resulterer i tidlig binding, dvs. binding, når programmet kompileres, skal objektvariablen defineres med et bestemt klasse-id. Du kan f.eks. definere og oprette følgende Excel-henvisninger:

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)

Henvisninger via en tidligt bundet variabel kan give bedre ydeevne men kan kun indeholde en henvisning til den klasse, der er angivet i erklæring.

Du kan overføre et objekt, der er returneret med funktionen CreateObject, til en funktion, der forventer et objekt som argument. Med følgende kode oprettes og overføres der f.eks. en henvisning til et Excel.Application-objekt:

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

Du kan oprette et objekt på en fjerncomputer i et netværk ved at overføre navnet på computeren til argumentet servername for CreateObject. Dette navn er det samme som maskinnavnedelen af et sharenavn: for et share med navnet "\\MyServer\Public," er servername "MyServer."

Bemærk: Se COM-dokumentationen (se Microsoft Developer Network) for at få yderligere oplysninger om at gøre et program synligt for en fjerncomputer i et netværk. Du skal muligvis tilføje en registreringsnøgle for programmet.

Med følgende kode returneres varsionsnummeret for en forekomst af Excel, som kører på en fjerncomputer med navnet MyServer:

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

Hvis fjernserveren ikke findes eller ikke er tilgængelig, opstår der en kørselsfejl..

Bemærk: Brug funktionen CreateObject, hvis der ikke findes en forekomst af objektet. Hvis der allerede kører en forekomst af objektet, startes der en ny forekomst, og der oprettes et objekt af den angivne type. Hvis du vil bruge den aktuelle forekomst eller starte programmet og lade det indlæse en fil, skal du bruge funktionen GetObject.

Hvis et objekt har registreret sig selv som et objekt med en enkelt forekomst, oprettes der kun en enkelt forekomst af objektet, uanset hvor mange gange CreateObject udføres.

Eksempel

I dette eksempel anvendes funktionen CreateObject til at angive en henvisning (

xlApp

) til Excel. Til funktionen anvendes henvisningen til at få adgang til egenskaben Synlig i Excel og bruger derefter Excel-metoden Afslut til at lukke den. Til sidst frigives selve henvisningen.

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.

Bemærk: Ansvarsfraskrivelse for maskinoversættelse: Denne artikel er blevet oversat af et computersystem uden menneskelig indgriben. Microsoft tilbyder disse maskinoversættelse for at hjælpe ikke-engelsktalende brugere til at kunne nyde indhold om Microsofts produkter, tjenester og teknologier. Da artiklen er maskinoversat, kan den indeholde forkerte ord eller syntaks- eller grammatikfejl.

Del Facebook Facebook Twitter Twitter Mail Mail

Var disse oplysninger nyttige?

Fantastisk! Har du mere feedback?

Hvordan kan vi forbedre det?

Tak for din feedback!

×