Aby uzyskać wersję programu Microsoft Visual C# .NET tego artykułu, zobacz 316384.
Aby zapoznać się z wersją tego artykułu w języku Microsoft Visual Basic 6.0, zobacz 313193.
Podsumowanie
W tym artykule krok po kroku opisano, jak utworzyć nowy dokument w programie Word przy użyciu automatyzacji z programu Visual Basic .NET.
Przykładowy kod
Przykładowy kod w tym artykule pokazuje, jak wykonać następujące czynności:
-
Wstawianie akapitów z tekstem i formatowaniem.
-
Przeglądaj i modyfikuj różne zakresy w dokumencie.
-
Wstawiaj tabele, formatuj tabele i wypełniaj je danymi.
-
Dodawanie wykresu.
Aby utworzyć nowy dokument programu Word przy użyciu automatyzacji z programu Visual Basic .NET, wykonaj następujące czynności:
-
Uruchom program Microsoft Visual Studio .NET. W menu Plik kliknij pozycję Nowy, a następnie kliknij polecenie Wyświetlaj na innym ekranie. W obszarze Typy projektów kliknij pozycję Projekty w języku Visual Basic, a następnie kliknij pozycję Aplikacja systemu Windows w obszarze Szablony. Domyślnie tworzony jest formularz1.
-
Dodaj odwołanie do biblioteki obiektów programu Microsoft Word. W tym celu wykonaj następujące czynności:
-
W menu Projekt kliknij polecenie Dodaj odwołanie.
-
Na karcie COM znajdź bibliotekę obiektów programu Microsoft Word i kliknij przycisk Wybierz.
Uwaga Pakiet Microsoft Office 2003 i nowsze wersje pakietu Office zawierają podstawowe zestawy międzyopowe (PIA). Pakiet Microsoft Office XP nie zawiera danych PIN, ale mogą zostać pobrane.
-
Kliknij przycisk OK w oknie dialogowym Dodawanie odwołań, aby zaakceptować wybrane opcje. Jeśli zostanie wyświetlony monit o wygenerowanie otoków dla wybranych bibliotek, kliknij przycisk Tak.
-
-
W menu Widok wybierz pozycję Przybornik, aby wyświetlić przybornik, a następnie dodaj przycisk do formularza 1.
-
Kliknij dwukrotnie przycisk1. Zostanie wyświetlone okno kodu formularza.
-
W oknie kodu zastąp następujący kod
Private Sub Button1_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles Button1.Click End Sub
Z:
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
-
Dodaj następujący kod na początku formularza Form1.vb:
Imports Word = Microsoft.Office.Interop.Word
-
Naciśnij klawisz F5, aby utworzyć i uruchomić program.
Po zakończeniu kodu sprawdź utworzony dla Ciebie dokument. Dokument zawiera dwie strony sformatowanych akapitów, tabel i wykresu.
Używanie szablonu
Jeśli do tworzenia dokumentów w typowym formacie używasz automatyzacji, możesz rozpocząć proces od nowego dokumentu opartego na wstępnie sformatowanym szablonie. Używanie szablonu z klientem automatyzacji programu Word ma dwie istotne zalety w stosunku do tworzenia dokumentu z niczego:
-
Możesz mieć większą kontrolę nad formatowaniem i rozmieszczeniem obiektów w dokumentach.
-
Możesz tworzyć dokumenty z mniejszą ilością kodu.
Korzystając z szablonu, można precyzyjnie dostosować rozmieszczenie tabel, akapitów i innych obiektów w dokumencie, a także uwzględnić formatowanie tych obiektów. Za pomocą automatyzacji możesz utworzyć nowy dokument na podstawie szablonu z kodem, takim jak:
oWord.Documents.Add "<Path to your template>\MyTemplate.dot"
W szablonie można zdefiniować zakładki, aby klient automatyzacji mógł wypełnić zmienny tekst w określonym miejscu w dokumencie w następujący sposób:
oDoc.Bookmarks.Item("MyBookmark").Range.Text = "Some Text Here"
Kolejną zaletą korzystania z szablonu jest możliwość tworzenia i przechowywania stylów formatowania, które chcesz zastosować w czasie wykonywania, w następujący sposób:
oDoc.Bookmarks.Item("MyBookmark").Range.Style = "MyStyle"
-Lub-
oWord.Selection.Style = "MyStyle"
Informacje
Aby uzyskać więcej informacji na temat automatyzowania programu Microsoft Word za pomocą programu Visual Basic, kliknij następujący numer artykułu, aby wyświetlić ten artykuł w bazie wiedzy Microsoft Knowledge Base:
301656 Jak zautomatyzować tworzenie korespondencji seryjnej w programie Word za pomocą programu Visual Basic .NET