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

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
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.
Résumé
Cet article étape par étape décrit comment créer un nouveau document dans Word à l'aide de 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
    par :
        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, 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 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 :
word2002 word2k2 word10 wordxp wd2002 wd2k2 wd10 wdxp word2003 word2k3 word11 wd2003 wd2k3 wd11 word2007 word2k7 word12 wd2007 wd2k7 wd12

Avertissement : Cet article a été traduit automatiquement.

Propriétés

ID d'article : 316383 - Dernière mise à jour : 07/03/2015 21:28:00 - Révision : 14.0

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

  • kbexpertiseinter kbautomation kbhowtomaster kbmt KB316383 KbMtfr
Commentaires