Yeni belge oluşturmak için Visual Basic kullanarak Microsoft Word'u otomatikleştirme

Özet

Bu adım adım makalede, Visual Basic'ten Otomasyon kullanılarak Word'de yeni bir belgenin nasıl oluşturulacağı açıklanır.

Örnek Kod

Bu makaledeki örnek kod aşağıdakilerin nasıl yapılacağını gösterir:

  • Metin ve biçimlendirme içeren paragraflar ekleyin.
  • Belge içindeki çeşitli aralıklara göz atın ve bunları değiştirin.
  • Tablolar ekleyin, tabloları biçimlendirin ve tabloları verilerle doldurun.
  • Grafik ekleyin.

Visual Basic'ten Otomasyon'u kullanarak yeni bir Word belgesi oluşturmak için şu adımları izleyin:

  1. Visual Basic'te yeni bir Standart EXE projesi oluşturun. Form1 varsayılan olarak oluşturulur.

  2. Proje menüsündeBaşvurular'a tıklayın, aşağıdaki seçeneklerden birine tıklayın ve ardından Tamam'a tıklayın:

    • Office Word 2007 için Microsoft Word 12.0 Nesne Kitaplığı'ne tıklayın.
    • Word 2003 için Microsoft Word 11.0 Nesne Kitaplığı'ne tıklayın.
    • Word 2002 için Microsoft Word 10.0 Nesne Kitaplığı'ne tıklayın.
    • Word 2000 için Microsoft Word 9.0 Nesne Kitaplığı'ne tıklayın.
  3. Form1'e CommandButton denetimi ekleyin.

  4. Command1 için Click olayına aşağıdaki kodu ekleyin:

     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.
     Set oWord = CreateObject("Word.Application")
     oWord.Visible = True
     Set oDoc = oWord.Documents.Add
    
     'Insert a paragraph at the beginning of the document.
     Set 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.
     Set oPara2 = oDoc.Content.Paragraphs.Add(oDoc.Bookmarks("\endofdoc").Range)
     oPara2.Range.Text = "Heading 2"
     oPara2.Format.SpaceAfter = 6
     oPara2.Range.InsertParagraphAfter
    
     'Insert another paragraph.
     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
    
     'Insert a 3 x 5 table, fill it with data and make the first row
     'bold,italic.
     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
    
     'Add some text after the table.
     '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
    
     'Insert a 5 x 2 table, fill it with data and change the column widths.
     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)   'Change width of columns 1 & 2.
     oTable.Columns(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("\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
    
     'Insert a chart and change the chart.
     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
     '... 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.
     Set oRng = oDoc.Bookmarks("\endofdoc").Range
     oRng.InsertParagraphAfter
     oRng.InsertAfter "THE END."
    
     'All done. Unload this form.
     Unload Me
    
    
  5. Programı çalıştırmak için F5 tuşuna basın ve ardından Komut1'e tıklayın.

Kod tamamlandıktan sonra sizin için oluşturulan belgeyi inceleyin. Belge iki sayfa biçimlendirilmiş paragraf, tablo ve grafik içerir.

Şablon Kullanma

Tümü ortak biçimde olan belgeler oluşturmak için Otomasyon kullanıyorsanız, işlemi önceden biçimlendirilmiş bir şablonu temel alan yeni bir belgeyle başlatmanın avantajından yararlanabilirsiniz. Word Otomasyonu istemcinizle şablon kullanmanın, hiçbir şey kullanmadan belge oluşturmanın iki önemli avantajı vardır:

  • Belgelerinizde nesnelerin biçimlendirmesi ve yerleşimi üzerinde daha fazla denetime sahip olabilirsiniz.
  • Belgelerinizi daha az kodla oluşturabilirsiniz.

Şablon kullanarak, belgedeki tabloların, paragrafların ve diğer nesnelerin yerleşiminde ince ayarlamalar yapabilir ve bu nesnelere biçimlendirme ekleyebilirsiniz. Otomasyon'u kullanarak aşağıdaki gibi kodlarla şablonunuzu temel alan yeni bir belge oluşturabilirsiniz:

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

Şablonunuzda, Otomasyon istemcinizin belgedeki belirli bir konumdaki değişken metni aşağıdaki gibi doldurabilmesi için yer işaretleri tanımlayabilirsiniz:

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

Şablon kullanmanın bir diğer avantajı, çalışma zamanında uygulamak istediğiniz biçimlendirme stillerini aşağıdaki gibi oluşturup depolamanızdır:

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

veya

oWord.Selection.Style = "MyStyle"

Başvurular

Ek bilgi için, Microsoft Bilgi Bankası'ndaki makaleleri görüntülemek üzere aşağıdaki makale numaralarına tıklayın:

285332 Adres Mektup Birleştirme Oluşturmak için Visual Basic ile Word 2002'yi Otomatikleştirme

Visual Studio ile Microsoft Office Geliştirme

(c) Microsoft Corporation 2001, Tüm Hakları Saklıdır. Lori B. Turner, Microsoft Corporation'ın katkıları.