Cet article a fait l’objet d’une traduction automatique. Pour afficher l’article en anglais, activez la case d’option Anglais. Vous pouvez également afficher le texte anglais dans une fenêtre contextuelle en faisant glisser le pointeur de la souris sur le texte traduit.
Traduction
Anglais

Interaction.CreateObject méthode (String, String)

 

Date de publication : novembre 2016

Crée et retourne une référence à un objet COM. CreateObjectne peut pas être utilisé pour créer des instances de classes en Visual Basic, sauf si ces classes sont exposées explicitement en tant que composants COM.

Espace de noms:   Microsoft.VisualBasic
Assembly:  Microsoft.VisualBasic (dans Microsoft.VisualBasic.dll)

[HostProtectionAttribute(SecurityAction.LinkDemand, Resources = HostProtectionResource.ExternalProcessMgmt)]
[SecurityPermissionAttribute(SecurityAction.Demand, Flags = SecurityPermissionFlag.UnmanagedCode)]
public static object CreateObject(
	string ProgId,
	string ServerName = ""
)

Paramètres

ProgId
Type: System.String

Obligatoire. String. ID de programme de l’objet à créer.

ServerName
Type: System.String

Facultatif. String. Le nom du serveur réseau où l’objet sera créé. Si ServerName est une chaîne vide (« »), l’ordinateur local est utilisé.

Valeur de retour

Type: System.Object

Crée et retourne une référence à un objet COM. CreateObjectne peut pas être utilisé pour créer des instances de classes en Visual Basic, sauf si ces classes sont exposées explicitement en tant que composants COM.

Exception Condition
Exception

ProgIdintrouvable ou non fourni

ou

ServerNameÉchec de la DnsValidateName (fonction), probablement parce qu’il est plu de 63 caractères ou contient un caractère non valide.

Exception

Serveur n’est pas disponible

FileNotFoundException

N’existe aucun objet du type spécifié

Pour créer une instance d’un composant COM, assignez l’objet retourné par CreateObject à une variable objet :

Sub CreateADODB()
   Dim adoApp As Object
   adoApp = CreateObject("ADODB.Connection")
End Sub

Le type de variable objet que vous permet de stocker l’objet retourné peut affecter les performances de votre application. Déclarez une variable objet avec la As Object clause 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 à liaison tardive, autrement dit, la liaison se produit lorsque votre programme s’exécute. Il existe de nombreuses raisons, que vous devez éviter la liaison tardive, y compris les performances des applications plus lent.

Vous pouvez créer une variable objet qui entraîne une liaison anticipée, autrement dit, la liaison lorsque le programme est compilé. Pour ce faire, ajoutez une référence à la bibliothèque de types pour votre objet à partir de la COM onglet de la ajouter une référence boîte de dialogue sur le projet menu. Déclare la variable objet du type spécifique de votre objet. Dans la plupart des cas, il est plus efficace d’utiliser le Dim instruction et un assembly PIA pour créer des objets qu’il est d’utiliser le CreateObject (fonction).

Un autre problème est que les objets COM utilisent le code non managé : code sans l’avantage du common language runtime. Il existe un certain degré de complexité impliquées dans la combinaison de code managé de Visual Basic et de code non managé à partir de COM. Lorsque vous ajoutez une référence à un objet COM, Visual Basic cherche un assembly PIA (Interop Assembly) pour cette bibliothèque ; s’il en trouve, puis il l’utilise. S’il ne trouve pas un assembly PIA, il crée ensuite un assembly d’interopérabilité qui contient les classes d’interopérabilité locales pour chaque classe dans la bibliothèque COM. Pour plus d'informations, consultez COM Interoperability in .NET Framework Applications (Visual Basic).

Vous devez généralement utiliser des objets fortement liés et des assemblys PIA autant que possible. Les exemples ci-dessous utilisent les CreateObject à des fins de fonction avec des objets Microsoft Office de démonstration uniquement. Toutefois, ces objets sont plus faciles à utiliser et plus fiable lorsqu’il est utilisé avec l’assembly PIA approprié.

Vous pouvez créer un objet sur un ordinateur réseau distant en passant le nom de l’ordinateur pour le ServerName argument de la CreateObject (fonction). Ce nom est identique à la partie du nom de l’ordinateur d’un nom de partage : pour un partage nommé « \\MyServer\Public », ServerName est « MyServer ».

System_CAPS_noteRemarque

Reportez-vous à la documentation COM (voir Microsoft Developer Network) pour plus d’informations sur la création d’une application accessible sur un ordinateur réseau à distance. Vous devrez peut-être ajouter une clé de Registre pour votre application.

Le code suivant retourne le numéro de version d’une instance d’Excel en cours d’exécution sur un ordinateur distant nommé MyServer:

Sub CreateRemoteExcelObj()
    Dim xlApp As Object
    ' Replace string "\\MyServer" with name of the remote computer.
    xlApp = CreateObject("Excel.Application", "\\MyServer")
    MsgBox(xlApp.Version)
End Sub

Si le nom de serveur distant est incorrect, ou si elle n’est pas disponible, une erreur d’exécution se produit.

System_CAPS_noteRemarque

Utilisez CreateObject lorsqu’il n’existe 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 type spécifié est créé. Pour utiliser l’instance actuelle, ou pour démarrer l’application en chargeant un fichier, utilisez le GetObject (fonction). Si un objet s’est inscrit en tant qu’objet à instance unique, qu’une seule instance de l’objet est créée, quelle que soit la procédure autant de fois CreateObject est exécutée.

Vous pouvez utiliser le CreateObject uniquement pour créer un objet COM (fonction). Il n’existe aucun mécanisme équivalent exact pour créer un objet .NET Framework, le Activator dans le System espace de noms contient des méthodes pour créer des objets locaux ou distants. En particulier, la CreateInstance méthode ou la CreateInstanceFrom méthode peut être utile.

System_CAPS_security Sécurité Remarque

Le CreateObject fonction requiert l’autorisation de code non managé, ce qui peut affecter son exécution dans les situations de confiance partielle. Pour plus d’informations, consultez SecurityPermission et autorisations d’accès de Code.

L’exemple suivant utilise le CreateObject la fonction pour créer une feuille de calcul Microsoft Excel et enregistre la feuille de calcul dans un fichier. Pour utiliser cet exemple, Excel doit être installé sur l’ordinateur sur lequel ce programme s’exécute. En outre, vous devez ajouter une référence à la bibliothèque de types à partir de la COM onglet de la ajouter une référence boîte de dialogue sur le projet menu. Le nom de la bibliothèque de types varie selon la version d’Excel installée sur votre ordinateur. Par exemple, la bibliothèque de types pour Microsoft Excel 2002 se nomme bibliothèque d’objets Microsoft Excel 10.0.

Sub TestExcel()
    Dim xlApp As Microsoft.Office.Interop.Excel.Application
    Dim xlBook As Microsoft.Office.Interop.Excel.Workbook
    Dim xlSheet As Microsoft.Office.Interop.Excel.Worksheet

    xlApp = CType(CreateObject("Excel.Application"), 
                Microsoft.Office.Interop.Excel.Application)
    xlBook = CType(xlApp.Workbooks.Add, 
                Microsoft.Office.Interop.Excel.Workbook)
    xlSheet = CType(xlBook.Worksheets(1), 
                Microsoft.Office.Interop.Excel.Worksheet)

    ' The following statement puts text in the second row of the sheet.
    xlSheet.Cells(2, 2) = "This is column B row 2"
    ' The following statement shows the sheet.
    xlSheet.Application.Visible = True
    ' The following statement saves the sheet to the C:\Test.xls directory.
    xlSheet.SaveAs("C:\Test.xls")
    ' Optionally, you can call xlApp.Quit to close the workbook.
End Sub

.NET Framework
Disponible depuis 1.1
Retour au début
Afficher: