En Microsoft Visual C# .NET-version av den här artikeln finns i 316384.
En Microsoft Visual Basic 6.0-version av den här artikeln finns i 313193.
Sammanfattning
I den här stegvisa artikeln beskrivs hur du skapar ett nytt dokument i Word med hjälp av automatisering från Visual Basic .NET.
Exempelkod
Exempelkoden i den här artikeln visar hur du gör följande:
-
Infoga stycken med text och formatering.
-
Bläddra bland och ändra olika områden i ett dokument.
-
Infoga tabeller, formatera tabeller och fyll i tabellerna med data.
-
Lägg till ett diagram.
Om du vill skapa ett nytt Word-dokument med hjälp av Automation från Visual Basic .NET gör du så här:
-
Starta Microsoft Visual Studio .NET. Klicka på Nytt på Arkiv-menyn och sedan på Projicera. Under Projekttyper klickar du på Visual Basic-projekt och sedan på Windows-program under Mallar. Formulär1 skapas som standard.
-
Lägg till en referens till Microsoft Word-objektbiblioteket. Gör så här:
-
Klicka på Lägg till referens på Projekt-menyn.
-
På fliken COM letar du reda på Microsoft Word-objektbiblioteket och klickar på Markera.
Obs! Microsoft Office 2003 och senare versioner av Office innehåller primära interop-sammansättningar (PIAs). Microsoft Office XP innehåller inte pias, men de kan laddas ned. -
Klicka på OK i dialogrutan Lägg till referenser för att acceptera dina val. Om du får en uppmaning om att generera omslag för de bibliotek som du har markerat klickar du på Ja.
-
-
På visa-menyn väljer du Verktygslåda för att visa verktygslådan och lägger sedan till en knapp i Formulär1.
-
Dubbelklicka på Knapp1. Kodfönstret för formuläret visas.
-
Ersätt följande kod i kodfönstret
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
-
Lägg till följande kod högst upp i Form1.vb:
Imports Word = Microsoft.Office.Interop.Word
-
Tryck på F5 för att skapa och köra programmet.
När koden har slutförts undersöker du dokumentet som har skapats åt dig. Dokumentet innehåller två sidor med formaterade stycken, tabeller och ett diagram.
Använda en mall
Om du använder Automation för att skapa dokument som alla är i ett gemensamt format kan du ha nytta av att starta processen med ett nytt dokument som baseras på en förformaterad mall. Att använda en mall med Word Automation-klienten har två stora fördelar jämfört med att skapa ett dokument från ingenting:
-
Du kan ha större kontroll över formatering och placering av objekt i alla dokument.
-
Du kan skapa dina dokument med mindre kod.
Med hjälp av en mall kan du finjustera placeringen av tabeller, stycken och andra objekt i dokumentet, samt inkludera formatering för dessa objekt. Med automation kan du skapa ett nytt dokument baserat på mallen med kod som följande:
oWord.Documents.Add "<Path to your template>\MyTemplate.dot"
I mallen kan du definiera bokmärken så att automationsklienten kan fylla i variabel text på en viss plats i dokumentet enligt följande:
oDoc.Bookmarks.Item("MyBookmark").Range.Text = "Some Text Here"
En annan fördel med att använda en mall är att du kan skapa och lagra formatmallar som du vill använda vid körning enligt följande:
oDoc.Bookmarks.Item("MyBookmark").Range.Style = "MyStyle"
-Eller-
oWord.Selection.Style = "MyStyle"
Referenser
Om du vill ha mer information om hur du använder Visual Basic .NET för att automatisera Microsoft Word klickar du på följande artikelnummer för att visa artikeln i Microsoft Knowledge Base:
301656 Så här automatiserar du Word för dokumentkoppling från Visual Basic .NET