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

Zermelo - 9 avril 2013 à 09:54 - Dernière réponse :  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 : ×
Afficher la suite 

7 réponses

Répondre au sujet
Utilisateur anonyme - 10 avril 2013 à 16:27
+3
Utile
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.
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de Utilisateur anonyme
cs_Le Pivert 5065 Messages postés jeudi 13 septembre 2007Date d'inscriptionContributeurStatut 13 avril 2018 Dernière intervention - 10 avril 2013 à 17:35
+3
Utile
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
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de cs_Le Pivert
Utilisateur anonyme - 9 avril 2013 à 20:21
0
Utile
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.
Commenter la réponse de Utilisateur anonyme
0
Utile
Bonjour cmarcotte.
Merci pour ta réponse. Peux-tu m'expliquer comment utiliser les PIA pour Office ?


Étant illettré, je signe d'une croix : ×
Commenter la réponse de Zermelo
0
Utile
Grand merci à tous deux.

Cordialement.


Étant illettré, je signe d'une croix : ×
Commenter la réponse de Zermelo
cs_Le Pivert 5065 Messages postés jeudi 13 septembre 2007Date d'inscriptionContributeurStatut 13 avril 2018 Dernière intervention - 12 avril 2013 à 13:55
0
Utile
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
Commenter la réponse de cs_Le Pivert
0
Utile
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 : ×
Commenter la réponse de Zermelo

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.