Przejdź do głównej zawartości
Pomoc techniczna
Zaloguj się przy użyciu konta Microsoft
Zaloguj się lub utwórz konto.
Witaj,
Wybierz inne konto.
Masz wiele kont
Wybierz konto, za pomocą którego chcesz się zalogować.

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:

  1. 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.

  2. Dodaj odwołanie do biblioteki obiektów programu Microsoft Word. W tym celu wykonaj następujące czynności:

    1. W menu Projekt kliknij polecenie Dodaj odwołanie.

    2. 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.
       

    3. 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.

  3. W menu Widok wybierz pozycję Przybornik, aby wyświetlić przybornik, a następnie dodaj przycisk do formularza 1.

  4. Kliknij dwukrotnie przycisk1. Zostanie wyświetlone okno kodu formularza.

  5. 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
  6. Dodaj następujący kod na początku formularza Form1.vb:

    Imports Word = Microsoft.Office.Interop.Word
  7. 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

Potrzebujesz dalszej pomocy?

Chcesz uzyskać więcej opcji?

Poznaj korzyści z subskrypcji, przeglądaj kursy szkoleniowe, dowiedz się, jak zabezpieczyć urządzenie i nie tylko.

Społeczności pomagają zadawać i odpowiadać na pytania, przekazywać opinie i słuchać ekspertów z bogatą wiedzą.

Czy te informacje były pomocne?

Jaka jest jakość języka?
Co wpłynęło na Twoje wrażenia?
Jeśli naciśniesz pozycję „Wyślij”, Twoja opinia zostanie użyta do ulepszania produktów i usług firmy Microsoft. Twój administrator IT będzie mógł gromadzić te dane. Oświadczenie o ochronie prywatności.

Dziękujemy za opinię!

×