VB client de Word 97

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.