Vous êtes actuellement hors ligne, en attente de reconnexion à Internet.

Comment faire pour automatiser Microsoft Word à l'aide de Visual Basic 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: 313193
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.

WD2007

Avertissement : Cet article a été traduit automatiquement.

Propriétés

ID d'article : 313193 - Dernière mise à jour : 05/14/2013 04:15:00 - Révision : 8.0

Microsoft Visual Basic 6.0 Édition professionnelle, Microsoft Office Word 2007, Microsoft Word 2002 Standard Edition, Microsoft Word 2000 Standard Edition

  • kbexpertiseinter kbautomation kbhowtomaster kbmt KB313193 KbMtfr
Commentaires