Hvis du vil ha en Microsoft Visual C# .NET-versjon av denne artikkelen, kan du se 316384.
Hvis du vil ha en Microsoft Visual Basic 6.0-versjon av denne artikkelen, kan du se 313193.
Sammendrag
Denne trinnvise artikkelen beskriver hvordan du oppretter et nytt dokument i Word ved hjelp av automatisering fra Visual Basic .NET.
Eksempelkode
Eksempelkoden i denne artikkelen demonstrerer hvordan du gjør følgende:
-
Sett inn avsnitt med tekst og formatering.
-
Bla gjennom og endre ulike områder i et dokument.
-
Sett inn tabeller, formater tabeller og fyll ut tabellene med data.
-
Legg til et diagram.
Følg disse trinnene for å opprette et nytt Word-dokument ved hjelp av automatisering fra Visual Basic .NET:
-
Start Microsoft Visual Studio .NET. Klikk Ny på Fil-menyen, og klikk deretter Prosjekt. Klikk Visual Basic-prosjekter under Prosjekttyper, og klikk deretter Windows-program under Maler. Skjema1 er opprettet som standard.
-
Legg til en referanse i objektbiblioteket i Microsoft Word. Dette gjør du slik:
-
Klikk Legg til referanse på Prosjekt-menyen.
-
Finn Objektbiblioteket i Microsoft Word på COM-fanen, og klikk Velg.
Obs! Microsoft Office 2003 og nyere versjoner av Office inkluderer primære interop-samlinger (PIAer). Microsoft Office XP inkluderer ikke PIAer, men de kan lastes ned. -
Klikk OK i dialogboksen Legg til referanser for å godta valgene. Hvis du får en melding om å generere wrappers for bibliotekene du valgte, klikker du Ja.
-
-
Velg Verktøykasse på Vis-menyen for å vise verktøykassen, og legg deretter til en knapp i Skjema1.
-
Dobbeltklikk Knapp1. Kodevinduet for skjemaet vises.
-
Erstatt følgende kode i kodevinduet
Private Sub Button1_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles Button1.Click End Sub
Med:
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
-
Legg til følgende kode øverst i Form1.vb:
Imports Word = Microsoft.Office.Interop.Word
-
Trykk F5 for å bygge og kjøre programmet.
Når koden er fullført, kan du undersøke dokumentet som er opprettet for deg. Dokumentet inneholder to sider med formaterte avsnitt, tabeller og et diagram.
Bruke en mal
Hvis du bruker automatisering til å bygge dokumenter som alle er i et felles format, kan du dra nytte av å starte prosessen med et nytt dokument som er basert på en forhåndsformatert mal. Bruk av en mal med Word Automation-klienten har to betydelige fordeler ved å bygge et dokument fra ingenting:
-
Du kan ha større kontroll over formateringen og plasseringen av objekter i hele dokumentene.
-
Du kan bygge dokumenter med mindre kode.
Ved hjelp av en mal kan du finjustere plasseringen av tabeller, avsnitt og andre objekter i dokumentet, samt inkludere formatering på disse objektene. Ved hjelp av automatisering kan du opprette et nytt dokument basert på malen med kode, for eksempel følgende:
oWord.Documents.Add "<Path to your template>\MyTemplate.dot"
I malen kan du definere bokmerker slik at automatiseringsklienten kan fylle ut variabel tekst på et bestemt sted i dokumentet, som følger:
oDoc.Bookmarks.Item("MyBookmark").Range.Text = "Some Text Here"
En annen fordel med å bruke en mal er at du kan opprette og lagre formateringsstiler som du vil bruke ved kjøring, som følger:
oDoc.Bookmarks.Item("MyBookmark").Range.Style = "MyStyle"
-Eller-
oWord.Selection.Style = "MyStyle"
Referanser
Hvis du vil ha mer informasjon om hvordan du bruker Visual Basic .NET til å automatisere Microsoft Word, klikker du følgende artikkelnummer for å vise artikkelen i Microsoft Knowledge Base:
301656 Slik automatiserer du Word til å utføre en utskriftsfletting fra Visual Basic .NET