
| Démonstration : Un programme VB qui pilote Word |
Notre objectif: Ouvrir un document Word depuis Vb, se déplacer à l'intérieur de signet en signet, puis insérer du texte et imprimer. Vous pouvez télécharger un projet exemple écrit en VB5 en cliquant ici.
Remarques :
Cet exemple est très proche de la démonstration de client ActiveX Excel présentée dans une autre page de ce site. C'est pourquoi j'ai volontairement employé du Copier/Coller pour créer la démonstration pour Word.
La version Word utilisée ici est 97. Word 97et 95 proposent tous deux une bibliothèque de type. Word 6 n'en possède pas. Ainsi, si vous travaillez avec Word 6, l'étape 1 sera ignorée, dans l'étape 2, vous déclarerez la variable MonWd de type Object. L'utilisation deWord6 est donc moins confortable car vous ne bénéficierez pas de l'intellisense, ni de l'aide de Word.
| Etape 1: |
Nativement, Visual Basic ignore ce que sont les objets Word. Vous ferez donc référence à Word.
Dans le menu Projet, sélectionnez Références. La boîte de dialogue que vous découvrez présente tous les programmes compatibles OLE Automation présents sur votre PC. Si Word est installé vous trouverez et cocherez la case "Microsoft Word 8 Object Library".
| Etape 2: |
Visual Basic accèptera désormais de manipuler des variables dont le type est décrit par Word au travers de la bibliothèque retenue lors de l'étape 1. Dans la zone General-Declarations d'un module, créez une variable publique:
Public MonWd as Word.Application
| Etape 3: |
Dans une feuille VB, créez 3 zones de texte nommées Text1, Text2, Text3 et une liste nommée genre contenant "Madame, Mademoiselle, Monsieur" et un bouton nommé BtnRelance.
Dans un document Word nommé Nous.doc, insérez les signets suivants Qui, Qui2, Quand, Combien
| Etape 4: |
Dans la procédure évènementielle du bouton BtnRelance, saisissez:
Private Sub BtnRelance_Click()
'Initialisation de MonWd
Set MonWd = CreateObject("Word.Application")
'MonWd.Visible = True 'enlevez le commentaire pour les tests
'Ouverture d'un document présent dans le dossier de l'application
MonWd.Documents.Open App.Path & "\nous.doc"
'Positionnement dans le document sur le signet Qui et Qui2
'Saisie du contenu de la textbox dans le document Word
MonWd.ActiveDocument.Bookmarks("Qui").Select
MonWd.Selection.InsertAfter Genre.Text & " " & Text1.Text
MonWd.ActiveDocument.Bookmarks("Qui2").Select
MonWd.Selection.InsertAfter Genre.Text
'Positionnement dans le document sur le signet Quand
'Saisie du contenu de la textbox dans le document Word
MonWd.ActiveDocument.Bookmarks("Quand").Select
MonWd.Selection.InsertAfter Text2.Text
'Positionnement dans le document sur le signet Combien
'Saisie du contenu de la textbox dans le document Word
MonWd.ActiveDocument.Bookmarks("Combien").Select
MonWd.Selection.InsertAfter Text3.Text
'Impression du courrier
MonWd.ActiveDocument.PrintOut
'Fermeture du document et de Word
MonWd.ActiveDocument.Close False
MonWd.Quit
End Sub
| Etape 5: |
Testez, en supprimant la ligne 2 MonWd.Visible=True, l'utilisateur n'y verra que du feu.
| Etape 6: |
Félicitez-vous.