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:

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

  2. Lisää viittaus Microsoft Wordin objektikirjastoon. Voit tehdä tämän seuraavasti:

    1. Valitse Projekti-valikossa Lisää viittaus.

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

    3. Hyväksy valintasi valitsemalla Lisää viittauksia -valintaikkunassa OK. Jos saat kehotteen luoda rivit valitsemiasi kirjastoja varten, valitse Kyllä.

  3. Tuo työkaluryhmä näkyviin valitsemalla Näytä-valikossa Työkaluryhmä ja lisää sitten painike Form1:een.

  4. Kaksoisnapsauta Painiketta1. Lomakkeen koodi-ikkuna tulee näkyviin.

  5. 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
  6. Lisää seuraava koodi Form1.vb:n alkuun:

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

Tarvitsetko lisäohjeita?

Haluatko lisää vaihtoehtoja?

Tutustu tilausetuihin, selaa harjoituskursseja, opi suojaamaan laitteesi ja paljon muuta.