Table of contents
TOC
Réduire la table des matières
Développer la table des matières

CreateObject, fonction

office 365 dev account|Dernière mise à jour: 04/10/2017
|
1 Contributeur

Créer 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émentDescription
classRequis. Valeur de type Variant ( String ). Nom de l'application et classe de l'objet à créer.
servernameFacultatif. Valeur de type Variant ( String ). Nom du serveur réseau où l'objet sera créé. Si servername est une chaîne vide (""), l'ordinateur local est utilisé.

L' argumentclass utilise la syntaxe appname.objecttype et comprend les éléments suivants :

ÉlémentDescription
appnameRequis. Valeur de type Variant ( String ). Nom de l'application qui fournit l'objet.
objecttypeRequis. Valeur de type Variant ( String ). Type ou classe d'objet à créer.

Remarque

Chaque application qui prend en charge l'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 objet Toolbar.

Pour créer un objet ActiveX, assignez l'objet renvoyé par CreateObject à une variable d'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 le cas présent une feuille de calcul Microsoft Excel. Une fois qu'un objet est créé, vous y faites référence dans le code à l'aide de la variable d'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 d'objet ExcelSheet et d'autres objets Microsoft Excel, y compris l'objet Application 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

La déclaration d'une variable d'objet avec la clause As Object crée une variable qui peut contenir une référence à tout type d'objet. Toutefois, l'accès à l'objet par le biais de cette variable est lié de manière tardive ; autrement dit, la liaison a lieu lors de l'exécution de votre programme. Pour créer une variable d'objet qui résulte en une liaison anticipée, c'est-à-dire une liaison établie lors de la compilation du programme, déclarez la variable d'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 le biais d'une variable à liaison anticipée peut procurer de meilleures performances, mais peut contenir uniquement une référence à la classe spécifiée dans la déclaration.

Vous pouvez passer un objet renvoyé par la fonction CreateObject à une fonction qui attend un objet comme argument. Par exemple, le code suivant crée et passe une référence à un objet Excel.Application :

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

Vous pouvez créer un objet sur un ordinateur réseau distant en passant 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é « \MonServeur\Public », servername est « MonServeur ».

Remarque Pour plus d'informations sur la façon de rendre une application visible sur un ordinateur réseau distant, voir la documentation COM (voir Microsoft Developer Network ). Vous devrez peut-être ajouter une clé de Registre pour votre application.

Le code suivant renvoie le numéro de version d'une instance d'Excel exécutée 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 actuelle 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 type spécifié est créé. Pour utiliser l'instance actuelle, ou pour démarrer l'application et faire en sorte qu'elle charge un fichier, utilisez la fonction GetObject.

Si un objet s'est enregistré lui-même comme objet d'instance unique, une seule instance de l'objet est créée, quel que soit le nombre d'exécutions de CreateObject.

Exemple

Cet exemple utilise la fonction CreateObject pour définir une référence ( xlApp) à Microsoft Excel. Il utilise la référence pour accéder à la propriété Visible de Microsoft Excel, puis utilise la méthode Quit de Microsoft Excel pour le fermer. Pour finir, la référence proprement dite est libéré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.
© 2018 Microsoft