![](https://codky.com/wp-content/uploads/2024/11/2734-1024x576.png)
La fonction `GetObject` en VBA (Visual Basic for Applications) est utilisée pour accéder à une instance d’un objet existant à partir d’une application exécutable ou pour ouvrir un fichier et obtenir un objet représentant ce fichier. Contrairement à la fonction `CreateObject`, qui est utilisée pour créer une nouvelle instance d’un objet, `GetObject` est utilisée pour obtenir une référence à un objet existant.
Voici comment utiliser la fonction `GetObject` :
Syntaxe
Set objectVariable = GetObject([pathname] [, class])
- pathname (facultatif) : Chaîne qui spécifie le chemin d’accès au fichier à partir duquel l’objet est à créer. Si omis, vous devez spécifier `class`.
- class (facultatif) : Chaîne qui spécifie la classe de l’objet sous la forme “application.classe”. Si omis, VBA tente de déterminer le type d’objet par le fichier spécifié.
Exemples d’utilisation
Exemple 1 : Ouvrir un fichier Excel existant
Imaginons que vous ayez un fichier Excel existant, vous pouvez l’ouvrir et y accéder de la manière suivante :
Dim xlApp As Object
Dim xlBook As Object
' Ouvre un fichier Excel existant
Set xlBook = GetObject("C:CheminVersVotreFichier.xlsx")
Set xlApp = xlBook.Application
' Utilisez l'objet xlApp ou xlBook selon vos besoins
xlApp.Visible = True
Exemple 2 : Obtenir un objet d’une application en cours d’exécution
Pour obtenir une référence à une application en cours d’exécution, telle que Microsoft Word, vous pouvez utiliser uniquement le paramètre `class` :
Dim wdApp As Object
' Obtenir une instance de Microsoft Word en cours d'exécution
Set wdApp = GetObject(, "Word.Application")
' Utilisez l'objet wdApp selon vos besoins
wdApp.Visible = True
Remarques
- `GetObject` génère une erreur si l’application spécifiée n’est pas déjà en cours d’exécution, sauf si un `pathname` est fourni et que l’application peut être lancée pour ouvrir ce fichier.
- Si vous avez besoin de créer une nouvelle instance d’une application, utilisez `CreateObject`.
En utilisant `GetObject`, vous pouvez travailler avec des documents existants et des applications déjà ouvertes, ce qui peut être utile pour automatiser des tâches sans reformater ou créer de nouvelles sessions de l’application.