Comment utiliser la fonction GetObject dans VBA ?

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.

Unlock Your Potential

Excel

Basic - Advanced

Access

Access Basic - Advanced

Power BI

Power BI Basic - Advanced

Help us grow the project