Pilotage par Interop (vb 2010 >> Word 2010)

Résolu
Zermelo - 9 avril 2013 à 09:54
 Zermelo - 12 avril 2013 à 14:26
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

Utilisateur anonyme
10 avril 2013 à 16:27
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.
3
cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 137
10 avril 2013 à 17:35
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
3
Utilisateur anonyme
9 avril 2013 à 20:21
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.
0
Bonjour cmarcotte.
Merci pour ta réponse. Peux-tu m'expliquer comment utiliser les PIA pour Office ?


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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Grand merci à tous deux.

Cordialement.


Étant illettré, je signe d'une croix : ×
0
cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 137
12 avril 2013 à 13:55
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
0
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 : ×
0
Rejoignez-nous