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:
-
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.
-
Adjon hozzá egy hivatkozást a Microsoft Word objektumtárhoz. Ezt a következőképpen teheti meg:
-
A Projekt menüben kattintson a Hivatkozás hozzáadása elemre.
-
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. -
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.
-
-
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.
-
Kattintson duplán a Gomb1 gombra. Megjelenik az űrlap kódablaka.
-
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
-
Adja hozzá a következő kódot a Form1.vb fájl elejéhez:
Imports Word = Microsoft.Office.Interop.Word
-
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