Olet tällä hetkellä offline-tilassa. Internet-yhteyden muodostamista uudelleen odotetaan

Uuden asiakirjan luominen automatisoimalla Microsoft Word Visual Basicin avulla

Office 2003:n tuki on päättynyt

Microsoft lopetti Office 2003:n tuen 8.4.2014. Tämä muutos on vaikuttanut ohjelmistopäivityksiin ja suojausasetuksiin. Lue lisätietoja muutoksen vaikutuksesta ja suojauksen varmistamisesta.

Yhteenveto
Tässä vaiheittaiset ohjeet sisältävässä artikkelissa kuvataan, miten luodaan uusi asiakirja Wordissa Visual Basicin automatisoinnin avulla.

Mallikoodi

Tämän artikkelin mallikoodi esittelee, miten tehdään seuraavaa:
  • tekstiä ja muotoilua sisältävien kappaleiden lisääminen
  • asiakirjan eri alueiden selaaminen ja muokkaaminen
  • taulukoiden lisääminen ja muotoileminen sekä tietojen lisääminen taulukoihin
  • kaavion lisääminen.
Jos haluat luoda uuden Word-asiakirjan Visual Basicin automatisoinnin avulla, toimi seuraavasti:
  1. Luo Visual Basicissa uusi normaali EXE-projekti. Lomake1 luodaan oletusarvon mukaan.
  2. Valitse Projekti-valikosta Viittaukset, valitse jokin seuraavista vaihtoehdoista ja valitse sitten OK.
    • Jos kyseessä on Office Word 2007, valitse Microsoft Word 12.0 Object Library.
    • Jos kyseessä on Word 2003, valitse Microsoft Word 11.0 Object Library.
    • Jos kyseessä on Word 2002, valitse Microsoft Word 10.0 Object Library.
    • Jos kyseessä on Word 2000, valitse Microsoft Word 9.0 Object Library.
  3. Lisää Lomake1-lomakkeeseen Komentopainike-ohjausobjekti.
  4. Lisää seuraava koodi Komento1-komennon napsautustapahtumaan:
        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    'Käynnistä Word ja avaa asiakirjamalli.    Set oWord = CreateObject("Word.Application")    oWord.Visible = True    Set oDoc = oWord.Documents.Add        'Lisää kappale asiakirjan alkuun.    Set oPara1 = oDoc.Content.Paragraphs.Add    oPara1.Range.Text = "Heading 1"    oPara1.Range.Font.Bold = True    oPara1.Format.SpaceAfter = 24    '24 pt välistys kappaleen jälkeen.    oPara1.Range.InsertParagraphAfter        'Lisää kappale asiakirjan loppuun.    '** \endofdoc on valmiiksi määritetty kirjanmerkki.    Set oPara2 = oDoc.Content.Paragraphs.Add(oDoc.Bookmarks("\endofdoc").Range)    oPara2.Range.Text = "Heading 2"    oPara2.Format.SpaceAfter = 6    oPara2.Range.InsertParagraphAfter        'Lisää kappale.    Set oPara3 = oDoc.Content.Paragraphs.Add(oDoc.Bookmarks("\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        'Lisää taulukko, jonka mitat ovat 3 x 5, lisää siihen tietoja ja    'tee ensimmäisestä rivistä lihavoitu sekä kursivoitu.    Dim r As Integer, c As Integer    Set oTable = oDoc.Tables.Add(oDoc.Bookmarks("\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(1).Range.Font.Bold = True    oTable.Rows(1).Range.Font.Italic = True        'Lisää tekstiä taulukon perään.    'oTable.Range.InsertParagraphAfter    Set oPara4 = oDoc.Content.Paragraphs.Add(oDoc.Bookmarks("\endofdoc").Range)    oPara4.Range.InsertParagraphBefore    oPara4.Range.Text = "And here's another table:"    oPara4.Format.SpaceAfter = 24    oPara4.Range.InsertParagraphAfter        'Lisää taulukko, jonka mitat ovat 5 x 2, lisää siihen tietoja ja muuta sarakkeiden leveydet.    Set oTable = oDoc.Tables.Add(oDoc.Bookmarks("\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(1).Width = oWord.InchesToPoints(2)   'Muuta sarakkeiden 1 ja 2 leveydet.    oTable.Columns(2).Width = oWord.InchesToPoints(3)        'Jatka tekstin lisäämistä. Kun päästään seitsemän tuuman päähän    'asiakirjan ylälaidasta, lisää pysyvä sivunvaihto.    Pos = oWord.InchesToPoints(7)    oDoc.Bookmarks("\endofdoc").Range.InsertParagraphAfter    Do        Set oRng = oDoc.Bookmarks("\endofdoc").Range        oRng.ParagraphFormat.SpaceAfter = 6        oRng.InsertAfter "A line of text"        oRng.InsertParagraphAfter    Loop While Pos >= oRng.Information(wdVerticalPositionRelativeToPage)    oRng.Collapse (wdCollapseEnd)    oRng.InsertBreak wdPageBreak    oRng.Collapse wdCollapseEnd    oRng.InsertAfter "We're now on page 2. Here's my chart:"    oRng.InsertParagraphAfter        'Lisää kaavio ja muuta sitä.    Set oShape = oDoc.Bookmarks("\endofdoc").Range.InlineShapes.AddOLEObject( _        ClassType:="MSGraph.Chart.8", FileName _        :="", LinkToFile:=False, DisplayAsIcon:=False)    Set oChart = oShape.OLEFormat.Object    oChart.charttype = 4 'xlLine = 4    oChart.Application.Update    oChart.Application.Quit    '...Jos haluat, voit jatkaa tästä käyttämällä Microsoft Graphin     'objektimallia oChart-objektille ja tehdä muita muutoksia kaavioon.    oShape.Width = oWord.InchesToPoints(6.25)    oShape.Height = oWord.InchesToPoints(3.57)        'Lisää tekstiä kaavion perään.    Set oRng = oDoc.Bookmarks("\endofdoc").Range    oRng.InsertParagraphAfter    oRng.InsertAfter "THE END."    'Kaikki on valmista. Poista tämän lomakkeen lataaminen.    Unload Me					
  5. Suorita ohjelma painamalla F5-näppäintä ja valitse sitten Komento1.
Kun koodin suoritus on valmis, tarkastele luotua asiakirjaa. Asiakirja sisältää kaksi sivua, jossa on muotoiltuja kappaleita ja taulukoita sekä kaavio.

Mallin käyttäminen

Jos muodostat automaation avulla asiakirjoja, jotka kaikki käyttävät samaa muotoa, voit hyötyä prosessin aloittamisesta uuden, valmiiksi muotoiltuun malliin perustuvan asiakirjan avulla. Mallin käyttämisellä Wordin automaatioasiakkaan kanssa on kaksi merkittävää etua verrattuna asiakirjan muodostamiseen kokonaan alusta:
  • Pystyt tehokkaammin ohjaamaan asiakirjojen muotoilua ja objektien sijoittamista asiakirjoissa.
  • Asiakirjojen muodostaminen ei edellytä yhtä paljon koodia.
Mallia käyttämällä voit säätää taulukoiden, kappaleiden ja muiden asiakirjan objektien sijoittamista sekä sisällyttää muotoilua kyseisiin objekteihin. Automaation avulla voit luoda uuden malliin perustuvan asiakirjan esimerkiksi seuraavan koodin avulla:
oWord.Documents.Add "<Mallin polku>\MyTemplate.dot"				
Voit määrittää mallissa kirjanmerkkejä niin, että automaatioasiakas voi täyttää muuttujien tekstin asiakirjan tiettyyn sijaintiin seuraavasti:
oDoc.Bookmarks("MyBookmark").Range.Text = "Some Text Here"				
Toinen mallin käyttämisen etu on se, että voit luoda ja tallentaa muotoilutyylejä käytettäväksi suorituksen aikana. Voit tehdä sen seuraavasti:
oDoc.Bookmarks("MyBookmark").Range.Style = "MyStyle"				
TAI
oWord.Selection.Style = "MyStyle"				
Suositukset
Saat lisätietoja napsauttamalla seuraavia artikkeleiden numeroita, jolloin pääset lukemaan artikkelit Microsoft Knowledge Base -tietokannassa:
220607 Microsoft Wordin automatisoiminen suorittamaan yhdistäminen Visual Basicin avulla (tämä artikkeli saattaa olla englanninkielinen)
285332 Wordin yhdistämisen luomisen automatisoiminen Visual Basicin avulla
285333 TIETOJA: Word 2002:n MailMerge-tapahtumakoodin esittely (tämä artikkeli saattaa olla englanninkielinen)
Saat lisätietoja seuraavista Microsoft Developer Networkin (MSDN) verkkosivustoista:
Microsoft Office Development with Visual Studio
http://msdn2.microsoft.com/en-us/library/aa188489(office.10).aspx
(c) Microsoft Corporation 2001. Kaikki oikeudet pidätetään. Sisällön tuottanut Lori B. Turner, Microsoft Corporation.

WD2007
Ominaisuudet

Artikkelin tunnus: 313193 – Viimeisin tarkistus: 11/23/2007 12:25:00 – Versio: 6.0

  • Microsoft Visual Basic 6.0 Professional Edition
  • Microsoft Office Word 2007
  • Microsoft Office Word 2003
  • Microsoft Word 2002 Standard Edition
  • Microsoft Word 2000 Standard Edition
  • kbhowtomaster kbautomation kbexpertiseinter KB313193
Palaute