Lisätietoja tämän artikkelin Microsoft Visual C# .NET -versiosta on artikkelissa 316384.
Lisätietoja tämän artikkelin Microsoft Visual Basic 6.0 -versiosta on artikkelissa 313193.
Yhteenveto
Tässä vaiheittaisessa artikkelissa kerrotaan, miten voit luoda uuden asiakirjan Wordissa Visual Basic .NET:n automaation avulla.
Esimerkkikoodi
Tämän artikkelin esimerkkikoodissa esitellään, miten voit tehdä seuraavat toimet:
-
Lisää tekstiä ja muotoilua sisältäviä kappaleita.
-
Selaa ja muokkaa asiakirjan eri alueita.
-
Lisää taulukoita, muotoile taulukoita ja täytä taulukot tiedoilla.
-
Lisää kaavio.
Jos haluat luoda uuden Word-asiakirjan Visual Basic .NET:n automaation avulla, toimi seuraavasti:
-
Käynnistä Microsoft Visual Studio .NET. Valitse Tiedosto-valikossa Uusi ja valitse sitten Projekti. Valitse Projektityypit-kohdassa Visual Basic Projects ja valitse sitten Mallit-kohdasta Windows-sovellus. Lomake1 luodaan oletusarvoisesti.
-
Lisää viittaus Microsoft Wordin objektikirjastoon. Voit tehdä tämän seuraavasti:
-
Valitse Projekti-valikossa Lisää viittaus.
-
Etsi COM-välilehdessä Microsoft Wordin objektikirjasto ja valitse Valitse.
Huomaa, että Microsoft Office 2003 ja uudemmat Office-versiot sisältävät ensisijaiset interop-kokoonpanot . Microsoft Office XP ei sisällä PIN-tilejä, mutta ne voidaan ladata. -
Hyväksy valintasi valitsemalla Lisää viittauksia -valintaikkunassa OK. Jos saat kehotteen luoda rivit valitsemiasi kirjastoja varten, valitse Kyllä.
-
-
Tuo työkaluryhmä näkyviin valitsemalla Näytä-valikossa Työkaluryhmä ja lisää sitten painike Form1:een.
-
Kaksoisnapsauta Painiketta1. Lomakkeen koodi-ikkuna tulee näkyviin.
-
Korvaa koodi-ikkunassa seuraava koodi
Private Sub Button1_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles Button1.Click End Sub
jossa on:
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
-
Lisää seuraava koodi Form1.vb:n alkuun:
Imports Word = Microsoft.Office.Interop.Word
-
Luo ja suorita ohjelma painamalla F5-näppäintä.
Kun koodi on valmis, tarkista asiakirja, joka on luotu puolestasi. Asiakirjassa on kaksi sivua muotoiltuja kappaleita, taulukoita ja kaavio.
Mallin käyttäminen
Jos luot automaation avulla asiakirjoja, jotka ovat kaikki yleisessä muodossa, voit hyötyä prosessin aloittamisesta uudella asiakirjalla, joka perustuu esimuotoilltuun malliin. Mallin käyttämisellä Word automation -asiakasohjelman kanssa on kaksi merkittävää etua asiakirjan luomiseen tyhjästä:
-
Voit hallita objektien muotoilua ja sijoittelua paremmin kaikissa asiakirjoissa.
-
Voit luoda tiedostoja pienemmällä koodilla.
Mallin avulla voit hienosäätää taulukoiden, kappaleiden ja muiden objektien sijaintia asiakirjassa sekä sisällyttää muotoiluja kyseisiin objekteihin. Automaation avulla voit luoda malliin perustuvan uuden asiakirjan, jossa on esimerkiksi seuraavat koodit:
oWord.Documents.Add "<Path to your template>\MyTemplate.dot"
Mallissa voit määrittää kirjanmerkit, jotta automaatioasiakas voi täyttää muuttuvan tekstin asiakirjan tiettyyn kohtaan seuraavasti:
oDoc.Bookmarks.Item("MyBookmark").Range.Text = "Some Text Here"
Mallin käytön etuna on myös se, että voit luoda ja tallentaa muotoilutyylejä, joita haluat käyttää suorituksen aikana, seuraavasti:
oDoc.Bookmarks.Item("MyBookmark").Range.Style = "MyStyle"
-Tai-
oWord.Selection.Style = "MyStyle"
Lisätietoja
Saat lisätietoja Visual Basic .NET:n käyttämisestä Microsoft Wordin automatisoinnissa napsauttamalla seuraavaa artikkelin numeroa, jotta voit tarkastella artikkelia Microsoft Knowledge Base -tietokannassa:
301656 Wordin automatisoiminen yhdistämisen suorittamiseksi Visual Basic .NET:stä