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 contient les éléments suivants :
É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, ExcelSheet
et 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.