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:
Luo Visual Basicissa uusi Standard EXE -projekti. Form1 luodaan oletusarvoisesti.
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.
Lisää CommandButton-ohjausobjekti Form1:een.
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
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.