Se connecter avec Microsoft
S'identifier ou créer un compte.
Bonjour,
Sélectionnez un autre compte.
Vous avez plusieurs comptes
Choisissez le compte avec lequel vous voulez vous connecter.

Remarque : La fonction, la méthode, l’objet ou la propriété décrits dans cette rubrique est désactivée si le service d’expressions de Microsoft Jet s’exécute en mode sandbox, ce qui empêche l’évaluation d’expressions potentiellement non sûres. Pour plus d’informations sur le mode sandbox, recherchez « mode sandbox » dans l’Aide.

Renvoie une référence à un objet fourni par un ActiveX objet.

Syntaxe

GetObject([pathname ] [ , class ] )

La syntaxe de la fonction GetObject est la suivante :

Argument

Description

nom_chemin_accès

Facultatif. Variant(Chaîne). Chemin d’accès complet et nom du fichier contenant l’objet à récupérer. Si nom_chemin_accès est omis, la classe est obligatoire.

classe

Facultatif. Variant(Chaîne). Chaîne représentant la classe de l’objet.


Le groupe deargument utilise le nom d’application de syntaxe.type objet et se composant des éléments ci-après :

Partie

Description

appname

Obligatoire. Variant(Chaîne). Nom de l’application qui fournit l’objet.

type d’objet

Obligatoire. Variant(Chaîne). Type ou classe d’objet à créer.


Remarques

Remarque : Les exemples qui suivent illustrent l’utilisation de cette fonction dans un module Visual Basic pour Applications (VBA). Pour plus d’informations sur l’travail avec VBA, sélectionnez Référence du développeur dans la liste de listes en regard de Rechercher, puis entrez un ou plusieurs termes dans la zone de recherche.

Utilisez la fonction GetObject pour accéder à ActiveX objet à partir d’un fichier et l’affecter à un variable objet. Utilisez l’instruction Set pour affecter l’objet renvoyé par GetObject à la variable d’objet. Par exemple :

Dim CADObject As Object
Set CADObject = GetObject("C:\CAD\SCHEMA.CAD")

Lorsque ce code est exécuté, l’application associée au nom de chemin d’accès spécifié est démarrée et l’objet dans le fichier spécifié est activé.

Si pathname est une chaîne nulle («  »), GetObject renvoie une nouvelle instance d’objet du type spécifié. Si l’argument pathname est omis, GetObject renvoie un objet actif du type spécifié. Si aucun objet du type spécifié n’existe, une erreur se produit.

Certaines applications vous permettent d’activer une partie d’un fichier. Ajoutez un point d’exclamation (!) à la fin du nom du fichier et suivez-le avec une chaîne qui identifie la partie du fichier que vous voulez activer. Pour plus d’informations sur la création de cette chaîne, consultez la documentation de l’application qui a créé l’objet.

Par exemple, dans une application de dessin, vous pouvez avoir plusieurs couches sur un dessin stocké dans un fichier. Vous pouvez utiliser le code suivant pour activer un calque dans un dessin appelé SCHEMA.CAD:

Set LayerObject = GetObject("C:\CAD\SCHEMA.CAD!Layer3")

Si vous ne spécifiez pas la classe de l’objet, l’automatisation détermine l’application à démarrer et l’objet à activer, en fonction du nom de fichier que vous fournissez. Toutefois, certains fichiers peuvent prendre en charge plusieurs classes d’objets. Par exemple, un dessin peut prendre en charge trois types différents d’objets : un objet Application, un objet Dessin et un objet barre d’outils, qui font partie du même fichier. Pour spécifier l’objet dans un fichier à activer, utilisez l’argument classe facultatif. Par exemple :

Dim MyObject As Object
Set MyObject = GetObject("C:\DRAWINGS\SAMPLE.DRW", _
"FIGMENT.DRAWING")

Dans l’exemple, FIGMENT est le nom d’une application de dessin et DRAWING l’un des types d’objets qu’elle prend en charge.

Une fois qu’un objet est activé, vous le référencez dans du code à l’aide de la variable d’objet que vous avez définie. Dans l’exemple précédent, vous accédez aux propriétés et méthodes du nouvel objet à l’aide de la variable MyObject. Par exemple :

MyObject.Line 9, 90
MyObject.InsertText 9, 100, "Hello, world."
MyObject.SaveAs "C:\DRAWINGS\SAMPLE.DRW"

Remarque :  Utilisez la fonction GetObject lorsqu’il existe une instance actuelle de l’objet ou si vous voulez créer l’objet avec un fichier déjà chargé. Si aucune instance n’est en cours et que vous ne souhaitez pas que l’objet commence par un fichier chargé, utilisez la fonction CreateObject.

Si un objet s’est inscrit en tant qu’objet à instance unique, une seule instance de l’objet est créée, quel que soit le nombre de fois où CreateObject est exécuté. Avec un objet à instance unique, GetObject renvoie toujours la même instance quand il est appelé avec la syntaxe de chaîne nulle («  ») ; il entraîne une erreur si l’argument nom_chemin_accès est omis. Vous ne pouvez pas utiliser GetObject pour obtenir une référence à une classe créée avec Visual Basic.

Exemple

Cet exemple utilise la fonction GetObject pour obtenir une référence à une feuille de Microsoft Office Excel 2007 données spécifique (MyXL). Elle utilise la propriété Application de la feuille de calcul pour rendre Excel visible, pour la fermer, etc. À l’aide de deux appels d’API, la procédure DetectExcel Sub recherche Excel et, si elle est en cours d’exécution, l’entre dans la table Objet en cours d’exécution. Le premier appel vers GetObject entraîne une erreur si Microsoft Excel n’est pas déjà en cours d’exécution. Dans l’exemple, l’erreur entraîne le jeu d’indicateurs ExcelWasNotRunning sur True. Le deuxième appel vers GetObject spécifie un fichier à ouvrir. Si Excel n’est pas déjà en cours d’exécution, le deuxième appel démarre celui-ci et renvoie une référence à la feuille de calcul représentée par le fichier spécifié, mytest.xls. Le fichier doit exister à l’emplacement spécifié. sinon, l’Visual Basic’erreur « Automation des erreurs » est générée. Ensuite, l’exemple de code rend visible Excel et la fenêtre contenant la feuille de calcul spécifiée. Enfin, s’il n’y avait aucune version antérieure d’Excel en cours d’exécution, le code utilise la méthode T de l’objet Application pour fermer Excel. Si l’application était déjà en cours d’exécution, aucune tentative de fermeture n’est faite. La référence elle-même est publiée en la définitionant sur Rien.

' Declare necessary API routines:
Declare Function FindWindow Lib "user32" Alias _
"FindWindowA" (ByVal lpClassName as String, _
ByVal lpWindowName As Long) As Long
Declare Function SendMessage Lib "user32" Alias _
"SendMessageA" (ByVal hWnd as Long,ByVal wMsg as Long, _
ByVal wParam as Long, _
ByVal lParam As Long) As Long
Sub GetExcel()
Dim MyXL As Object ' Variable to hold reference
' to Microsoft Excel.
Dim ExcelWasNotRunning As Boolean ' Flag for final release.
' Test to see if there is a copy of Microsoft Excel already running.
On Error Resume Next ' Defer error trapping.
' GetObject function called without the first argument returns a
' reference to an instance of the application. If the application isn't
' running, an error occurs.
Set MyXL = GetObject(, "Excel.Application")
If Err.Number <> 0 Then ExcelWasNotRunning = True
Err.Clear ' Clear Err object in case error occurred.
' Check for Microsoft Excel. If Microsoft Excel is running,
' enter it into the Running Object table.
DetectExcel
' Set the object variable to reference the file you want to see.
Set MyXL = GetObject("c:\vb4\MYTEST.XLS")
' Show Microsoft Excel through its Application property. Then
' show the actual window containing the file using the Windows
' collection of the MyXL object reference.
MyXL.Application.Visible = True
MyXL.Parent.Windows(1).Visible = True
Do manipulations of your file here.
' ...
' If this copy of Microsoft Excel was not running when you
' started, close it using the Application property's Quit method.
' Note that when you try to quit Microsoft Excel, the
' title bar blinks and a message is displayed asking if you
' want to save any loaded files.
If ExcelWasNotRunning = True Then
MyXL.Application.Quit
End IF
Set MyXL = Nothing ' Release reference to the
' application and spreadsheet.
End Sub
Sub DetectExcel()
' Procedure dectects a running Excel and registers it.
Const WM_USER = 1024
Dim hWnd As Long
' If Excel is running this API call returns its handle.
hWnd = FindWindow("XLMAIN", 0)
If hWnd = 0 Then ' 0 means Excel not running.
Exit Sub
Else
' Excel is running so use the SendMessage API
' function to enter it in the Running Object Table.
SendMessage hWnd, WM_USER + 18, 0, 0
End If
End Sub

Besoin d’aide ?

Vous voulez plus d’options ?

Explorez les avantages de l’abonnement, parcourez les cours de formation, découvrez comment sécuriser votre appareil, etc.

Les communautés vous permettent de poser des questions et d'y répondre, de donner vos commentaires et de bénéficier de l'avis d'experts aux connaissances approfondies.

Ces informations vous ont-elles été utiles ?

Dans quelle mesure êtes-vous satisfait(e) de la qualité de la langue ?
Qu’est-ce qui a affecté votre expérience ?
En cliquant sur Envoyer, vos commentaires seront utilisés pour améliorer les produits et services de Microsoft. Votre administrateur informatique sera en mesure de collecter ces données. Déclaration de confidentialité.

Nous vous remercions de vos commentaires.

×