A cikk Microsoft Visual C# .NET-verziójáról a 316384 című témakörben olvashat.  

A cikk Microsoft Visual Basic 6.0-s verziójával kapcsolatban lásd: 313193.  

Összefoglalás

Ez a részletes cikk azt ismerteti, hogyan hozhat létre új dokumentumot a Wordben a Visual Basic .NET Automation használatával.

Mintakód

A cikkben szereplő mintakód a következőket mutatja be:

  • Bekezdések beszúrása szöveggel és formázással.

  • Tallózással és módosítással módosíthatja a dokumentum különböző tartományait.

  • Táblázatokat szúrjon be, formázza a táblázatokat, és töltse fel a táblázatokat adatokkal.

  • Diagram hozzáadása.

Ha új Word-dokumentumot szeretne létrehozni a Visual Basic .NET Automation használatával, kövesse az alábbi lépéseket:

  1. Indítsa el a Microsoft Visual Studio .NET-et. A Fájl menüben kattintson az Új, majd a Projekt elemre. A Projekttípusok területen kattintson a Visual Basic Projects elemre, majd a Sablonok területen a Windows-alkalmazás elemre. A form1 alapértelmezés szerint létrejön.

  2. Adjon hozzá egy hivatkozást a Microsoft Word objektumtárhoz. Ezt a következőképpen teheti meg:

    1. A Projekt menüben kattintson a Hivatkozás hozzáadása elemre.

    2. A COM lapon keresse meg a Microsoft Word objektumtárat, és kattintson a Kiválasztás gombra.Megjegyzés: A Microsoft Office 2003 és az Office újabb verziói tartalmazzák az elsődleges együttműködési szerelvényeket (PIA-kat). A Microsoft Office XP nem tartalmaz PIA-kat, de előfordulhat, hogy letöltődik.  

    3. A hivatkozások elfogadásához kattintson az OK gombra a Hivatkozások hozzáadása párbeszédpanelen. Ha a rendszer kéri, hogy hozzon létre burkolókat a kiválasztott kódtárakhoz, kattintson az Igen gombra.

  3. A Nézet menüben válassza az Eszközkészlet lehetőséget az Eszközkészlet megjelenítéséhez, majd adjon hozzá egy gombot az 1. űrlaphoz.

  4. Kattintson duplán a Gomb1 gombra. Megjelenik az űrlap kódablaka.

  5. A kódablakban cserélje le a következő kódot

        Private Sub Button1_Click(ByVal sender As System.Object, _
          ByVal e As System.EventArgs) Handles Button1.Click
    
        End Sub

    a következővel:

        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. Adja hozzá a következő kódot a Form1.vb fájl elejéhez:

    Imports Word = Microsoft.Office.Interop.Word
  7. A program létrehozásához és futtatásához nyomja le az F5 billentyűt.

A kód befejeződése után vizsgálja meg az Ön számára létrehozott dokumentumot. A dokumentum két oldalnyi formázott bekezdést, táblázatot és diagramot tartalmaz.

Sablon használata

Ha az Automation használatával olyan dokumentumokat hoz létre, amelyek közös formátumúak, akkor érdemes lehet egy előre formázott sablonon alapuló új dokumentummal kezdeni a folyamatot. Ha sablont használ a Word Automation-ügyféllel, az két jelentős előnnyel jár a semmiből létrehozott dokumentumokhoz képest:

  • Nagyobb mértékben szabályozhatja az objektumok formázását és elhelyezését a dokumentumokban.

  • Dokumentumait kevesebb kóddal hozhatja létre.

Sablon használatával finomhangolhatja a táblázatok, bekezdések és egyéb objektumok elhelyezését a dokumentumon belül, valamint formázást is alkalmazhat ezekre az objektumokra. Az Automation használatával létrehozhat egy új dokumentumot a sablon alapján a következő kóddal:

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

A sablonban definiálhat könyvjelzőket, hogy az Automation-ügyfél a dokumentum egy adott helyén kitölthesse a változó szövegét az alábbiak szerint:

oDoc.Bookmarks.Item("MyBookmark").Range.Text = "Some Text Here"

A sablon használatának egy másik előnye, hogy futtatáskor alkalmazni kívánt formázási stílusokat az alábbiak szerint hozhat létre és tárolhat:

oDoc.Bookmarks.Item("MyBookmark").Range.Style = "MyStyle"

-Vagy-

oWord.Selection.Style = "MyStyle"

Hivatkozások

A Microsoft Word automatizálásához a Visual Basic .NET használatával kapcsolatos további információkért kattintson a következő cikkszámra a Microsoft Tudásbázisban a cikk megtekintéséhez:

301656 A Word automatizálása körlevélkészítéshez a Visual Basic .NET-ből

További segítségre van szüksége?

További lehetőségeket szeretne?

Fedezze fel az előfizetés előnyeit, böngésszen az oktatóanyagok között, ismerje meg, hogyan teheti biztonságossá eszközét, és így tovább.