Fonction CreateObjectCreateObject function

Crée et renvoie une référence à un objet ActiveX.Creates and returns a reference to an ActiveX object.

SyntaxeSyntax

CreateObject(class, [ servername ])CreateObject(class, [ servername ])


La syntaxe de la fonction CreateObject comprend les éléments suivants :The CreateObject function syntax has these parts:

ÉlémentPart DescriptionDescription
classclass Obligatoire ; Variante (chaîne).Required; Variant (String). Nom de l’application et classe de l’objet à créer.The application name and class of the object to create.
servernameservername Facultatif ; Variante (Chaîne).Optional; Variant (String). Nom du serveur réseau où l’objet sera créé.The name of the network server where the object will be created. Si servername est une chaîne vide (« »), l’ordinateur local est utilisé.If servername is an empty string (""), the local machine is used.

L’argumentclasse utilise la syntaxe appname.objecttype et comporte ces parties :The class argument uses the syntax appname.objecttype and has these parts:

ÉlémentPart DescriptionDescription
appnameappname Obligatoire ; Variante (chaîne).Required; Variant (String). Nom de l’application qui fournit l’objet.The name of the application providing the object.
objecttypeobjecttype Obligatoire ; Variante (chaîne).Required; Variant (String). Le type ou classe d’objet à créer.The type or class of object to create.

RemarquesRemarks

Chaque application prenant en charge Automation fournit au moins un type d’objet.Every application that supports Automation provides at least one type of object. Par exemple, une application de traitement de texte peut fournir un objet Application, un objet Document et un objet Barre d’outils.For example, a word processing application may provide an Application object, a Document object, and a Toolbar object.

Pour créer un objet ActiveX, attribuez l’objet retourné par CreateObject à une variable objet.To create an ActiveX object, assign the object returned by CreateObject to an object variable.

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

Ce code démarre l’application qui crée l’objet, dans ce cas, une feuille de calcul Microsoft Excel.This code starts the application creating the object, in this case, a Microsoft Excel spreadsheet. Une fois qu’un objet est créé, vous le référencez dans le code à l’aide de la variable objet que vous avez définie.After an object is created, you reference it in code by using the object variable you defined. Dans l’exemple suivant, vous accédez aux propriétés et méthodes du nouvel objet à l’aide de la variable objet, ExcelSheetet autres objets Microsoft Excel, y compris l’Application objet et la collection Cells.In the following example, you access properties and methods of the new object by using the object variable, ExcelSheet, and other Microsoft Excel objects, including the Application object and the Cells collection.

' 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


Déclarer une variable objet avec la clauseAs Object crée une variable qui peut contenir une référence à n’importe quel type d’objet.Declaring an object variable with the As Object clause creates a variable that can contain a reference to any type of object. Toutefois, l’accès à l’objet via cette variable est tardif ; autrement dit, la liaison se produit lors de l’exécution de votre programme.However, access to the object through that variable is late bound; that is, the binding occurs when your program is run. Pour créer une variable objet qui engendre une liaison anticipée, autrement dit, la liaison se fait lorsque le programme est compilé, déclarez la variable objet avec un ID de classe spécifique.To create an object variable that results in early binding, that is, binding when the program is compiled, declare the object variable with a specific class ID. Par exemple, vous pouvez déclarer et créer les références Microsoft Excel suivantes :For example, you can declare and create the following Microsoft Excel references:

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)


La référence par une variable liée de manière anticipée peut donner de meilleures performances, mais peut seulement contenir une référence à la classe spécifiée dans la déclaration.The reference through an early-bound variable can give better performance, but can only contain a reference to the class specified in the declaration.

Vous pouvez passer d’un objet retourné par la fonction CreateObject à une fonction attendant un objet comme un argument.You can pass an object returned by the CreateObject function to a function expecting an object as an argument. Par exemple, le code suivant crée et communique une référence à un objet Excel.Application :For example, the following code creates and passes a reference to a Excel.Application object:

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

Vous pouvez créer un objet sur un ordinateur en réseau à distance en spécifiant le nom de l’ordinateur à l’argument servername de CreateObject.You can create an object on a remote networked computer by passing the name of the computer to the servername argument of CreateObject. Ce nom est identique à la partie Nom de l’Ordinateur d’un nom partagé ; pour un partage nommé «\MyServer\Public», servername est « MyServer ».That name is the same as the Machine Name portion of a share name; for a share named "\MyServer\Public," servername is "MyServer."

Le code suivant renvoie le numéro de version d’une instance d’Excel en cours d’exécution sur un ordinateur distant nommé MyServer:The following code returns the version number of an instance of Excel running on a remote computer named MyServer:

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

Si le serveur distant n’existe pas ou n’est pas disponible, une erreur d’exécution se produit.If the remote server doesn't exist or is unavailable, a run-time error occurs.

Notes

Utilisez CreateObject lorsqu’il n’y a aucune instance en cours de l’objet.Use CreateObject when there is no current instance of the object. Si une instance de l’objet est déjà en cours d’exécution, une nouvelle instance est démarrée et un objet du même type est créé.If an instance of the object is already running, a new instance is started, and an object of the specified type is created. Pour utiliser l’instance actuelle, ou pour démarrer l’application et charger un fichier, utilisez la fonction GetObject.To use the current instance, or to start the application and have it load a file, use the GetObject function.

Si un objet s’est inscrit en tant qu’un objet à instance unique, une seule instance de l’objet est créée, peu importe combien de fois CreateObject est exécuté.If an object has registered itself as a single-instance object, only one instance of the object is created, no matter how many times CreateObject is executed.

ExempleExample

Cet exemple utilise la fonction CreateObject pour définir une référence (xlApp) dans Microsoft Excel.This example uses the CreateObject function to set a reference (xlApp) to Microsoft Excel. Il utilise la référence pour accéder à la propriété Visible de Microsoft Excel, puis utilise la méthode Microsoft Excel Quitter pour la fermer.It uses the reference to access the Visible property of Microsoft Excel, and then uses the Microsoft Excel Quit method to close it. Enfin, la référence elle-même est publiée.Finally, the reference itself is released.

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.
    ' Closes the application using the Quit method
xlApp.Quit    

Voir aussiSee also

Assistance et commentairesSupport and feedback

Avez-vous des questions ou des commentaires sur Office VBA ou sur cette documentation ?Have questions or feedback about Office VBA or this documentation? Consultez la rubrique concernant l’assistance pour Office VBA et l’envoi de commentaires afin d’obtenir des instructions pour recevoir une assistance et envoyer vos commentaires.Please see Office VBA support and feedback for guidance about the ways you can receive support and provide feedback.