Jak zautomatyzować program Microsoft Word przy użyciu języka Visual Basic w celu utworzenia nowego dokumentu

Podsumowanie

W tym artykule krok po kroku opisano sposób tworzenia nowego dokumentu w programie Word przy użyciu usługi Automation z poziomu programu Visual Basic.

Przykładowy kod

Przykładowy kod w tym artykule pokazuje, jak wykonać następujące czynności:

  • Wstaw akapity z tekstem i formatowaniem.
  • Przeglądaj i modyfikuj różne zakresy w dokumencie.
  • Wstaw tabele, sformatuj tabele i wypełnij tabele danymi.
  • Dodaj wykres.

Aby utworzyć nowy dokument programu Word przy użyciu usługi Automation z poziomu programu Visual Basic, wykonaj następujące kroki:

  1. W języku Visual Basic utwórz nowy projekt standardu EXE. Formularz 1 jest tworzony domyślnie.

  2. W menu Projekt kliknij pozycjęOdwołania, kliknij jedną z następujących opcji, a następnie kliknij przycisk OK:

    • W przypadku programu Office Word 2007 kliknij pozycję Biblioteka obiektów programu Microsoft Word 12.0.
    • W programie Word 2003 kliknij pozycję Biblioteka obiektów programu Microsoft Word 11.0.
    • W programie Word 2002 kliknij pozycję Biblioteka obiektów programu Microsoft Word 10.0.
    • W programie Word 2000 kliknij pozycję Biblioteka obiektów programu Microsoft Word 9.0.
  3. Dodaj kontrolkę CommandButton do formularza Form1.

  4. Dodaj następujący kod do zdarzenia Kliknij dla polecenia Command1:

     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. Naciśnij klawisz F5, aby uruchomić program, a następnie kliknij polecenie Command1.

Po zakończeniu wykonywania kodu przejrzyj utworzony dla Ciebie dokument. Dokument zawiera dwie strony sformatowanych akapitów, tabel i wykresu.

Korzystanie z szablonu

Jeśli używasz usługi Automation do tworzenia dokumentów w typowym formacie, możesz skorzystać z rozpoczęcia procesu przy użyciu nowego dokumentu opartego na wstępnie sformatowanym szablonie. Korzystanie z szablonu z klientem usługi Word Automation ma dwie znaczące zalety w stosunku do tworzenia dokumentu z niczego:

  • Możesz mieć większą kontrolę nad formatowaniem i umieszczaniem obiektów w dokumentach.
  • Dokumenty można tworzyć przy użyciu mniejszej ilości kodu.

Za pomocą szablonu można dostosować rozmieszczenie tabel, akapitów i innych obiektów w dokumencie, a także dołączyć formatowanie tych obiektów. Za pomocą usługi Automation możesz utworzyć nowy dokument na podstawie szablonu z kodem, takim jak następujący:

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

W szablonie można zdefiniować zakładki, aby klient usługi Automation mógł wypełnić tekst zmiennej w określonej lokalizacji w dokumencie w następujący sposób:

oDoc.Bookmarks("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("MyBookmark").Range.Style = "MyStyle"

lub

oWord.Selection.Style = "MyStyle"

Informacje

Aby uzyskać dodatkowe informacje, kliknij poniższe numery artykułów, aby wyświetlić artykuły w bazie wiedzy Microsoft Knowledge Base:

285332 jak zautomatyzować program Word 2002 za pomocą programu Visual Basic w celu utworzenia korespondencji seryjnej

Programowanie pakietu Microsoft Office przy użyciu programu Visual Studio

(c) Microsoft Corporation 2001, Wszelkie prawa zastrzeżone. Wkład Lori B. Turner, Microsoft Corporation.