Comment faire pour automatiser Word à partir de Visual Basic .NET pour créer un nouveau document

Traductions disponibles Traductions disponibles
Numéro d'article: 316383 - Voir les produits auxquels s'applique cet article
Pour obtenir une version Microsoft Visual C# .NET de cet article, reportez-vous à la section. 316384.
Pour obtenir une version Microsoft Visual Basic 6.0 de cet article, reportez-vous à la section. 313193.
Agrandir tout | Réduire tout

Sommaire

Résumé

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

Exemples de code

L'exemple de code dans cet article montre comment effectuer les opérations suivantes :
  • Insérer des paragraphes de texte et la mise en forme.
  • Parcourir et de modifier des plages différentes dans un document.
  • Insérer des tableaux, forme de tableaux et remplir le tables withdata.
  • Ajouter un graphique.
Pour créer un nouveau document Word en utilisant Automation à partir de Visual Basic .NET, procédez comme suit :
  1. Démarrez Microsoft Visual Studio .NET. Sur le Fichier menu, cliquez sur Nouveau puis cliquez sur Projet. Sous Types de projets Cliquez sur Projets Visual Basic, puis cliquez sur Application Windows sous Modèles. Form1 est créé par défaut.
  2. Ajoutez une référence à la Bibliothèque d'objets Microsoft Word. Pour ce faire, procédez comme suit :
    1. Sur le Projet menu, cliquez sur Ajouter une référence.
    2. Sur le COM onglet, recherchez la Bibliothèque d'objets Microsoft Word puis cliquez sur Sélectionnez.

      Remarque : Incluent les assemblys PIA (Primary Interop Assemblies) Microsoft Office 2003 et les versions ultérieures d'Office. Microsoft Office XP n'inclut pas d'assemblys PIA, mais ils peuvent être téléchargés. Pour plus d'informations sur les assemblys PIA Office XP, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la Base de connaissances Microsoft :
      328912 Microsoft Office XP assemblys PIA (Primary Interop Assemblies) sont disponibles pour téléchargement
    3. Cliquez sur OK dans le Ajouter des références boîte de dialogue pour accepter vos sélections. Si vous recevez une invite pour générer des wrappers pour les bibliothèques que vous avez sélectionné, cliquez sur Oui.
  3. Sur le Affichage menu, sélectionnez Boîte à outils Pour afficher la boîte à outils, puis ajoutez un bouton toForm1.
  4. Double-cliquez sur Button1. La fenêtre de code pour le formulaire s'affiche.
  5. Dans la fenêtre de code, remplacez le code suivant
        Private Sub Button1_Click(ByVal sender As System.Object, _
          ByVal e As System.EventArgs) Handles Button1.Click
    
        End Sub
    avec :
        Private Sub Button1_Click(ByVal sender As System.Object, _
          ByVal e As System.EventArgs) Handles Button1.Click
    
            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.
            oWord = CreateObject("Word.Application")
            oWord.Visible = True
            oDoc = oWord.Documents.Add
    
            'Insert a paragraph at the beginning of the document.
            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.
            oPara2 = oDoc.Content.Paragraphs.Add(oDoc.Bookmarks.Item("\endofdoc").Range)
            oPara2.Range.Text = "Heading 2"
            oPara2.Format.SpaceAfter = 6
            oPara2.Range.InsertParagraphAfter()
    
            'Insert another paragraph.
            oPara3 = oDoc.Content.Paragraphs.Add(oDoc.Bookmarks.Item("\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 and italic.
            Dim r As Integer, c As Integer
            oTable = oDoc.Tables.Add(oDoc.Bookmarks.Item("\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.Item(1).Range.Font.Bold = True
            oTable.Rows.Item(1).Range.Font.Italic = True
    
            'Add some text after the table.
            'oTable.Range.InsertParagraphAfter()
            oPara4 = oDoc.Content.Paragraphs.Add(oDoc.Bookmarks.Item("\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.
            oTable = oDoc.Tables.Add(oDoc.Bookmarks.Item("\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.Item(1).Width = oWord.InchesToPoints(2)   'Change width of columns 1 & 2
            oTable.Columns.Item(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.Item("\endofdoc").Range.InsertParagraphAfter()
            Do
                oRng = oDoc.Bookmarks.Item("\endofdoc").Range
                oRng.ParagraphFormat.SpaceAfter = 6
                oRng.InsertAfter("A line of text")
                oRng.InsertParagraphAfter()
            Loop While Pos >= oRng.Information(Word.WdInformation.wdVerticalPositionRelativeToPage)
            oRng.Collapse(Word.WdCollapseDirection.wdCollapseEnd)
            oRng.InsertBreak(Word.WdBreakType.wdPageBreak)
            oRng.Collapse(Word.WdCollapseDirection.wdCollapseEnd)
            oRng.InsertAfter("We're now on page 2. Here's my chart:")
            oRng.InsertParagraphAfter()
    
            'Insert a chart and change the chart.
            oShape = oDoc.Bookmarks.Item("\endofdoc").Range.InlineShapes.AddOLEObject( _
                ClassType:="MSGraph.Chart.8", FileName _
                :="", LinkToFile:=False, DisplayAsIcon:=False)
            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.
            oRng = oDoc.Bookmarks.Item("\endofdoc").Range
            oRng.InsertParagraphAfter()
            oRng.InsertAfter("THE END.")
    
            'All done. Close this form.
            Me.Close()
    
        End Sub
  6. Ajoutez le code suivant au début de Form1.vb :
    Imports Word = Microsoft.Office.Interop.Word
  7. Appuyez sur F5 pour générer et exécuter le programme.
Une fois le code terminé, examinez le document qui est créé pour vous. Le document contient deux pages de mise en forme des paragraphes, des tableaux et un graphique.

Utiliser un modèle

Si vous utilisez l'Automation pour créer des documents qui se trouvent toutes dans un format commun, vous pouvez bénéficier à partir du démarrage du processus avec un nouveau document basé sur un modèle déjà mis en forme. À l'aide d'un modèle avec votre client Automation Word a deux avantages importants sur la création d'un document à partir de rien :
  • Vous avez mieux contrôler la mise en forme andplacement des objets dans l'ensemble de vos documents.
  • Vous pouvez créer vos documents avec moins de code.
À l'aide d'un modèle, vous pouvez ajuster le positionnement des tables, des paragraphes et des autres objets dans le document, comme ainsi qu'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"
Dans votre modèle, vous pouvez définir des signets afin que votre client Automation peut remplir de texte variable à un emplacement spécifique dans le document, comme suit :
oDoc.Bookmarks.Item("MyBookmark").Range.Text = "Some Text Here"
Un autre avantage à l'aide d'un modèle est que vous pouvez créer et stocker des styles de mise en forme que vous souhaitez appliquer au moment de l'exécution, comme suit :
oDoc.Bookmarks.Item("MyBookmark").Range.Style = "MyStyle"
- ou -
oWord.Selection.Style = "MyStyle"

Références

Pour plus d'informations sur l'utilisation de Visual Basic .NET pour automatiser Microsoft Word, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la Base de connaissances Microsoft :
301656 Comment faire pour automatiser Word pour effectuer une fusion et publipostage à partir de Visual Basic .NET
Pour plus d'informations, consultez les sites Web de Microsoft Developer Network (MSDN) suivant :
Développement de Microsoft Office avec Visual Studio
http://msdn2.Microsoft.com/en-us/library/aa188489 (office.10).aspx

Word au bureau
http://msdn2.Microsoft.com/en-us/library/aa201330 (office.11).aspx

Plus d'un mot
http://msdn2.Microsoft.com/en-us/library/aa201332 (office.11).aspx

Propriétés

Numéro d'article: 316383 - Dernière mise à jour: lundi 11 novembre 2013 - Version: 13.0
Les informations contenues dans cet article s'appliquent au(x) produit(s) suivant(s):
  • Microsoft Visual Basic .NET 2003 Initiation
  • Microsoft Visual Basic .NET 2002 Initiation
  • Microsoft Office Word 2007
  • Microsoft Word 2002 Standard Edition
  • Microsoft Word 2010
  • Microsoft Visual Basic 2005
  • Microsoft Visual Basic 2005 Express Edition
  • Microsoft Visual Basic 2008 Express Edition
  • Microsoft Visual Basic 2010 Express
Mots-clés : 
kbexpertiseinter kbautomation kbhowtomaster kbmt KB316383 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: 316383
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