Microsoft Wordin automatisoiminen Visual Basicin avulla uuden asiakirjan luomiseksi

Yhteenveto

Tässä vaiheittaisessa artikkelissa kerrotaan, miten voit luoda uuden asiakirjan Wordissa Visual Basicin automaation avulla.

Mallikoodi

Tässä artikkelissa olevassa mallikoodissa esitellään, miten voit tehdä seuraavat:

  • Lisää tekstiä ja muotoilua sisältäviä kappaleita.
  • Selaa ja muokkaa asiakirjan eri alueita.
  • Lisää taulukoita, muotoile taulukoita ja täytä taulukot tiedoilla.
  • Lisää kaavio.

Jos haluat luoda uuden Word-asiakirjan Visual Basicin automaation avulla, toimi seuraavasti:

  1. Luo Visual Basicissa uusi Standard EXE -projekti. Form1 luodaan oletusarvoisesti.

  2. Valitse Projekti-valikostaViittaukset, valitse jokin seuraavista vaihtoehdoista ja valitse sitten OK:

    • Valitse Office Word 2007:ssä Microsoft Word 12.0 -objektikirjasto.
    • Valitse Word 2003:ssa Microsoft Word 11.0 -objektikirjasto.
    • Valitse Word 2002:ssa Microsoft Word 10.0 -objektikirjasto.
    • Valitse Word 2000:ssa Microsoft Word 9.0 -objektikirjasto.
  3. Lisää CommandButton-ohjausobjekti Form1:een.

  4. Lisää seuraava koodi Command1:n Napsautus-tapahtumaan:

     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. Suorita ohjelma painamalla F5-näppäintä ja valitse sitten Komento1.

Kun koodi on valmis, tarkista asiakirja, joka luotiin puolestasi. Asiakirja sisältää kaksi sivua muotoiltuja kappaleita, taulukoita ja kaavion.

Käytä mallia

Jos käytät automaatiota luomaan tiedostoja, jotka ovat kaikki yleisessä muodossa, voit hyötyä prosessin aloittamisesta uudella asiakirjalla, joka perustuu esimuotottuun malliin. Mallin käytöllä Word Automation -asiakasohjelmassa on kaksi merkittävää etua tiedoston luomiseen tyhjästä:

  • Voit hallita entistä paremmin objektien muotoilua ja sijaintia kaikissa asiakirjoissasi.
  • Voit luoda tiedostoja pienemmällä koodilla.

Mallin avulla voit hienosäätää taulukoiden, kappaleiden ja muiden objektien sijaintia asiakirjassa sekä sisällyttää muotoiluja kyseisiin objekteihin. Automaation avulla voit luoda malliin perustuvan uuden asiakirjan käyttäen koodia, kuten seuraavaa:

oWord.Documents.Add "<Path to your template>\MyTemplate.dot"

Mallissa voit määrittää kirjanmerkkejä niin, että automaatioasiakas voi täyttää muuttujatekstin asiakirjan tietyssä sijainnissa seuraavasti:

oDoc.Bookmarks("MyBookmark").Range.Text = "Some Text Here"

Toinen mallin käyttämisen etu on, että voit luoda ja tallentaa muotoilutyylejä, joita haluat käyttää suorituksen aikana, seuraavasti:

oDoc.Bookmarks("MyBookmark").Range.Style = "MyStyle"

TAI

oWord.Selection.Style = "MyStyle"

Lisätietoja

Saat lisätietoja napsauttamalla alla olevia artikkelin numeroita, jotta voit tarkastella Microsoft Knowledge Base -tietokannan artikkeleita:

285332 , miten voit automatisoida Word 2002:n Visual Basicin avulla yhdistämisen luomiseksi

Microsoft Office Development with Visual Studio

(c) Microsoft Corporation 2001, Kaikki oikeudet pidätetään. Osallistuminen: Lori B. Turner, Microsoft Corporation.