Fonction CreateObject

Crée et renvoie une référence à un objet ActiveX.

Syntaxe

CreateObject(class, [ servername ])

La syntaxe de la fonction CreateObject comprend les éléments suivants :

Élément Description
class Obligatoire ; Variante (chaîne). Nom de l’application et classe de l’objet à créer.
servername Facultatif ; Variante (Chaîne). Nom du serveur réseau où l’objet sera créé. Si servername est une chaîne vide (« »), l’ordinateur local est utilisé.

L’argument de classe utilise la syntaxe appname. objecttype et comprend les parties suivantes :

Élément Description
appname Obligatoire ; Variante (chaîne). Nom de l’application qui fournit l’objet.
objecttype Obligatoire ; Variante (chaîne). Le type ou classe d’objet à créer.

Remarques

Chaque application prenant en charge Automation fournit au moins un type d’objet. Par exemple, une application de traitement de texte peut fournir un objet Application, un objet Document et un objetBarre d’outils.

Pour créer un objet ActiveX, attribuez l’objet retourné par CreateObject à une variable objet.

' 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. 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. 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.

' 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. 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. 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. Par exemple, vous pouvez déclarer et créer les références Microsoft Excel suivantes :

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.

Vous pouvez passer d’un objet retourné par la fonction CreateObject à une fonction attendant un objet comme un argument. Par exemple, le code suivant crée et communique une référence à un objet Excel.Application :

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. Ce nom est identique à la partie Nom de l’ordinateur d’un nom de partage ; pour un partage nommé « \MyServer\Public », le nom du serveur est « 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:

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.

Remarque

Utilisez CreateObject lorsqu’il n’y a aucune instance en cours de l’objet. 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éé. Pour utiliser l’instance actuelle, ou pour démarrer l’application et charger un fichier, utilisez la fonctionGetObject.

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é.

Exemple

Cet exemple utilise la fonctionCreateObjectpour définir une référence (xlApp) dans 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. Enfin, la référence elle-même est publiée.

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 aussi

Assistance et commentaires

Avez-vous des questions ou des commentaires sur Office VBA ou sur cette 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.