Pilotage par Interop (vb 2010 >> Word 2010) [Résolu]

Signaler
-
 Zermelo -
Bonjour à toutes et à tous.

J'envisage de piloter Word 2010 à partir de Vb 2010, et ce sans liaison tardive. J'ai cru comprendre que cela est possible en ajoutant au framework l'assemblage
Microsoft.Office.Interop.Word

Si tel est le cas, j'aimerais recevoir un ou plusieurs retours d'expérience.

Merci d'avance.


Étant illettré, je signe d'une croix : ×

7 réponses


Bonjour,

Si tu ne les as pas déjà, tu dois les récupérer sur le site de Microsoft. Ils varient selon la version d'Office.

Version Office 2007

Version Office 2010

Office 2003

OfficeXP

Ensuite, il faut ajouter les références comme toute référence. Les PIAs sont des dll identifiées par interop.office, interop.excel etc.

Normalement, pour Word, tu ajoutes la référence à interop.word et (presque (99%)) certainement interop.office. S'il en manque, tu devrais avoir un message d'erreur, tôt ou tard. Si tu ne les retrouve pas sur ta machine, ce n'est pas tellement grave. Une fois les PIA installés, VB devrait les utiliser automatiquement, même si tu coches la référence à l'exécutable dans l'onglet COM des références.

Avec un peu de chance, tu devrais pouvoir récupérer des exemples gratuits dans la caverne d'Ali Baba.
Messages postés
7382
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
16 mai 2021
122
Bonjour,

Voici une solution que je viens de tester, car moi aussi je voulais supprimer les liaisons tardives.

Imports Microsoft.Office.Interop
Imports Microsoft.Office.Interop.Word

 'Créer une instance de word
        Dim oWord As New Word.Application


@+ Le Pivert

Bonjour,

Il y a essentiellement deux moyens d'établir l'interface entre le Framework .net et les composants COM comme Office. Il suffit simplement d'ajouter la référence. Ceci dit, il y a deux façons de le faire. Soit on laisse le Framework deviner en cochant l'exécutable ou la bibliothèque d'objets (Word objects Library). L'autre façon est d'utiliser ce que Microsoft appelle un Primary Interop Assembly (PIA). En principe les PIAs ont été optimisés pour offrir plus de sécurité et de performance qu'une dll passe-partout devinée par le Framework. Quoi qu'il en soit, Microsoft recommande d'éviter d'utiliser CreateObject.
Bonjour cmarcotte.
Merci pour ta réponse. Peux-tu m'expliquer comment utiliser les PIA pour Office ?


Étant illettré, je signe d'une croix : ×
Grand merci à tous deux.

Cordialement.


Étant illettré, je signe d'une croix : ×
Messages postés
7382
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
16 mai 2021
122
j'ai poussé mes investigations sur Excel et PowerPoint. C'est la même chose.
Après avoir ajouté les références:

Microsoft Office 12.0 Object Library
Microsoft Word 12.0 Object Library
Microsoft Excel 12.0 Object Library
Microsoft PowerPoint 12.0 Object Library

Voici le code:

Imports Microsoft.Office.Interop
Imports Microsoft.Office.Interop.Word
Imports Microsoft.Office.Interop.Excel
Imports Microsoft.Office.Interop.PowerPoint


 'Créer une instance de word
   Dim oWord As New Word.Application

'Créer une instance d'Excel
  Dim ApExcel As New Excel.Application

'Créer une instance de PowerPoint
  Dim PptApp As New PowerPoint.Application


Si cela peut être utile!

@+ Le Pivert
Bonjour Le Pivert.

Si c'est utile ? Et comment! Je n'en veux pour preuve que le nombre de personnes qui demandent comment lier Vb.net à Office, et qui se contentent de liaisons tardives.

Cordialement.


Étant illettré, je signe d'une croix : ×