Comment faire pour automatiser Microsoft Word à l'aide de Visual Basic pour créer un nouveau document

Traductions disponibles Traductions disponibles
Numéro d'article: 313193 - Voir les produits auxquels s'applique cet article
Agrandir tout | Réduire tout

Résumé

Cet article étape par étape explique comment créer un nouveau document dans Word en utilisant Automation à partir de Visual Basic.

Exemple de Code

L'exemple de code dans cet article montre comment effectuer le suivant :
  • Insérer des paragraphes de texte et mise en forme.
  • Parcourir et modifier des plages différentes au sein d'un document.
  • Insérer des tableaux, forme de tableaux et remplir les tables de données.
  • Ajouter un graphique.
Pour créer un nouveau document Word en utilisant Automation à partir de Visual Base, procédez comme suit :
  1. Dans Visual Basic, créez un nouveau projet EXE Standard. Form1 est créé par défaut.
  2. Sur la Projet menu, cliquez surRéférences, cliquez sur une des options suivantes, puis cliquez sur OK:
    • Pour Office Word 2007, cliquez sur Microsoft Word 12.0 Object Library.
    • Pour Word 2003, cliquez sur Microsoft Word 11.0 Object Library.
    • Pour Word 2002, cliquez sur Microsoft Word 10.0 Bibliothèque d'objets.
    • Pour Word 2000, cliquez sur Microsoft Word 9.0 Bibliothèque d'objets.
  3. Ajoutez un contrôle CommandButton à Form1.
  4. Ajoutez le code suivant à l'événement Click de Command1 :
        Dim oWord As Word.Application
        Dim oDoc As Word.Document
        Dim oTable As Word.Table
        Dim oPara1 As Word.Paragraph, oPara2 As Word.Paragraph
        Dim oPara3 As Word.Paragraph, oPara4 As Word.Paragraph
        Dim oRng As Word.Range
        Dim oShape As Word.InlineShape
        Dim oChart As Object
        Dim Pos as Double
    
        'Start Word and open the document template.
        Set oWord = CreateObject("Word.Application")
        oWord.Visible = True
        Set oDoc = oWord.Documents.Add
        
        'Insert a paragraph at the beginning of the document.
        Set oPara1 = oDoc.Content.Paragraphs.Add
        oPara1.Range.Text = "Heading 1"
        oPara1.Range.Font.Bold = True
        oPara1.Format.SpaceAfter = 24    '24 pt spacing after paragraph.
        oPara1.Range.InsertParagraphAfter
        
        'Insert a paragraph at the end of the document.
        '** \endofdoc is a predefined bookmark.
        Set oPara2 = oDoc.Content.Paragraphs.Add(oDoc.Bookmarks("\endofdoc").Range)
        oPara2.Range.Text = "Heading 2"
        oPara2.Format.SpaceAfter = 6
        oPara2.Range.InsertParagraphAfter
        
        'Insert another paragraph.
        Set oPara3 = oDoc.Content.Paragraphs.Add(oDoc.Bookmarks("\endofdoc").Range)
        oPara3.Range.Text = "This is a sentence of normal text. Now here is a table:"
        oPara3.Range.Font.Bold = False
        oPara3.Format.SpaceAfter = 24
        oPara3.Range.InsertParagraphAfter
        
        'Insert a 3 x 5 table, fill it with data and make the first row
        'bold,italic.
        Dim r As Integer, c As Integer
        Set oTable = oDoc.Tables.Add(oDoc.Bookmarks("\endofdoc").Range, 3, 5)
        oTable.Range.ParagraphFormat.SpaceAfter = 6
        For r = 1 To 3
            For c = 1 To 5
                oTable.Cell(r, c).Range.Text = "r" & r & "c" & c
            Next
        Next
        oTable.Rows(1).Range.Font.Bold = True
        oTable.Rows(1).Range.Font.Italic = True
        
        'Add some text after the table.
        'oTable.Range.InsertParagraphAfter
        Set oPara4 = oDoc.Content.Paragraphs.Add(oDoc.Bookmarks("\endofdoc").Range)
        oPara4.Range.InsertParagraphBefore
        oPara4.Range.Text = "And here's another table:"
        oPara4.Format.SpaceAfter = 24
        oPara4.Range.InsertParagraphAfter
        
        'Insert a 5 x 2 table, fill it with data and change the column widths.
        Set oTable = oDoc.Tables.Add(oDoc.Bookmarks("\endofdoc").Range, 5, 2)
        oTable.Range.ParagraphFormat.SpaceAfter = 6
        For r = 1 To 5
            For c = 1 To 2
                oTable.Cell(r, c).Range.Text = "r" & r & "c" & c
            Next
        Next
        oTable.Columns(1).Width = oWord.InchesToPoints(2)   'Change width of columns 1 & 2.
        oTable.Columns(2).Width = oWord.InchesToPoints(3)
        
        'Keep inserting text. When you get to 7 inches from top of the
        'document, insert a hard page break.
        Pos = oWord.InchesToPoints(7)
        oDoc.Bookmarks("\endofdoc").Range.InsertParagraphAfter
        Do
            Set oRng = oDoc.Bookmarks("\endofdoc").Range
            oRng.ParagraphFormat.SpaceAfter = 6
            oRng.InsertAfter "A line of text"
            oRng.InsertParagraphAfter
        Loop While Pos >= oRng.Information(wdVerticalPositionRelativeToPage)
        oRng.Collapse (wdCollapseEnd)
        oRng.InsertBreak wdPageBreak
        oRng.Collapse wdCollapseEnd
        oRng.InsertAfter "We're now on page 2. Here's my chart:"
        oRng.InsertParagraphAfter
        
        'Insert a chart and change the chart.
        Set oShape = oDoc.Bookmarks("\endofdoc").Range.InlineShapes.AddOLEObject( _
            ClassType:="MSGraph.Chart.8", FileName _
            :="", LinkToFile:=False, DisplayAsIcon:=False)
        Set oChart = oShape.OLEFormat.Object
        oChart.charttype = 4 'xlLine = 4
        oChart.Application.Update
        oChart.Application.Quit
        '... If desired, you can proceed from here using the Microsoft Graph 
        'Object model on the oChart object to make additional changes to the
        'chart.
        oShape.Width = oWord.InchesToPoints(6.25)
        oShape.Height = oWord.InchesToPoints(3.57)
        
        'Add text after the chart.
        Set oRng = oDoc.Bookmarks("\endofdoc").Range
        oRng.InsertParagraphAfter
        oRng.InsertAfter "THE END."
    
        'All done. Unload this form.
        Unload Me
    					
  5. Appuyez sur F5 pour exécuter le programme, puis cliquez sur Command1.
Après la fin du code, examiner le document qui a été créé Pour vous. Le document contient deux pages de paragraphes mis en forme, des tableaux et un graphique.

Utiliser un modèle

Si vous utilisez Automation pour créer des documents qui se trouvent tous dans un format commun, vous pouvez bénéficier de démarrer le processus avec un nouveau document qui est basé sur un modèle déjà mis en forme. En utilisant un modèle avec votre mot Client Automation a deux avantages importants sur la création d'un document à partir de Nothing :
  • Vous pouvez contrôlez davantage la mise en forme et positionnement des objets dans l'ensemble de vos documents.
  • Vous pouvez créer vos documents avec moins de code.
En utilisant un modèle, vous pouvez ajuster le placement des tableaux, paragraphes et autres objets dans le document, mais aussi inclure la mise en forme sur ces objets. À l'aide d'Automation, vous pouvez créer un nouveau document basé sur votre modèle avec le code suivant :
oWord.Documents.Add "<Path to your template>\MyTemplate.dot"
				
Vous pouvez définir des signets dans votre modèle, afin que votre automatisation client peut remplir dans un texte variable à un emplacement spécifique dans le document en tant que suit :
oDoc.Bookmarks("MyBookmark").Range.Text = "Some Text Here"
				
Un autre avantage à l'aide d'un modèle est que vous pouvez créer et stocker mise en forme des styles que vous souhaitez appliquer au moment de l'exécution, comme suit :
oDoc.Bookmarks("MyBookmark").Range.Style = "MyStyle"
				
- ou -
oWord.Selection.Style = "MyStyle"
				

Références

Pour plus d'informations, cliquez sur les numéros ci-dessous pour afficher les articles correspondants dans la Base de connaissances Microsoft :
220607 Comment faire pour automatiser Microsoft Word pour effectuer une fusion et publipostage à partir de Visual Basic
285332 Comment faire pour automatiser Word 2002 avec Visual Basic pour créer un publipostage
285333 INFO : Word 2002 MailMerge événement Code de démonstration
Pour plus d'informations, consultez le Microsoft suivant Developer Network (MSDN) Web sites :
Développement de Microsoft Office avec Visual Studio
http://msdn2.Microsoft.com/en-us/library/aa188489 (office.10) .aspx
(c) Microsoft Corporation 2001, tous droits réservés. Contributions de Lori B. Turner, Microsoft Corporation.

Propriétés

Numéro d'article: 313193 - Dernière mise à jour: mardi 14 mai 2013 - Version: 8.0
Les informations contenues dans cet article s'appliquent au(x) produit(s) suivant(s):
  • Microsoft Visual Basic 6.0 Édition professionnelle
  • Microsoft Office Word 2007
  • Microsoft Word 2002 Standard Edition
  • Microsoft Word 2000 Standard Edition
Mots-clés : 
kbexpertiseinter kbautomation kbhowtomaster kbmt KB313193 KbMtfr
Traduction automatique
IMPORTANT : Cet article est issu d'une traduction automatique réalisée par un logiciel Microsoft et non par un traducteur professionnel. Cette traduction automatique a pu aussi être révisée par la communauté Microsoft grâce à la technologie Community Translation Framework (CTF). Pour en savoir plus sur cette technologie, veuillez consulter la page http://support.microsoft.com/gp/machine-translation-corrections/fr. Microsoft vous propose en effet des articles traduits par des professionnels, des articles issus de traductions automatiques et des articles issus de traductions automatiques révisées par la communauté Microsoft, de manière à ce que vous ayez accès à tous les articles de notre Base de connaissances dans votre langue. Il est important de noter que les articles issus de la traduction automatique, y compris ceux révisés par la communauté Microsoft, peuvent contenir des erreurs de vocabulaire, de syntaxe ou de grammaire. Microsoft ne pourra être tenu responsable des imprécisions, erreurs, ainsi que de tout dommage résultant d?une traduction incorrecte du contenu ou de son utilisation par les clients.
La version anglaise de cet article est la suivante: 313193
L'INFORMATION CONTENUE DANS CE DOCUMENT EST FOURNIE PAR MICROSOFT SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE. L'UTILISATEUR ASSUME LE RISQUE DE L'UTILISATION DU CONTENU DE CE DOCUMENT. CE DOCUMENT NE PEUT ETRE REVENDU OU CEDE EN ECHANGE D'UN QUELCONQUE PROFIT.

Envoyer des commentaires

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com