Yeni bir belge oluşturmak için Visual Basic .NET Word'den otomatikleştirme

Makale çevirileri Makale çevirileri
Makale numarası: 316383 - Bu makalenin geçerli olduğu ürünleri görün.
Bu makalenin Microsoft Visual C# .NET sürümü için bkz: 316384.
Microsoft Visual Basic 6.0 sürümü bu makalenin bakın 313193.
Hepsini aç | Hepsini kapa

Bu Sayfada

Özet

Bu adım adım makalede, Visual Basic .NET'den Automation'ı kullanarak, Word'de yeni bir belge oluşturmak açıklamaktadır.

Örnek kod

Bu makaledeki örnek kod, aşağıdakileri gösterilmiştir:
  • Metin ve biçimlendirme paragraf ekler.
  • Göz ve bir belge içinde çeşitli aralıkları değiştirebilirsiniz.
  • Tablolar ekleme, tablo biçimlendirmek ve tabloları veriyle doldurmak.
  • Bir grafik ekleyin.
Otomasyon'dan Visual Basic .NET kullanarak yeni bir Word belgesi oluşturmak için aşağıdaki adımları izleyin:
  1. Microsoft Visual Studio .NET'i başlatın. Dosya menüsünde Yeni'yi tıklatın ve Project ' ı tıklatın. Proje türleri altında) Visual Basic Projects ' ı tıklatın ve şablonları altında Windows uygulaması ' ı tıklatın. Varsayılan olarak, Form1 oluşturulur.
  2. Microsoft Word nesne kitaplığına bir başvuru ekleyin. Bunu yapmak için şu adımları izleyin:
    1. Proje) menüsünde Add Reference ' ı tıklatın.
    2. COM sekmesinde, Microsoft Word nesne kitaplığı ' nı bulun ve Seç ' i tıklatın.

      Not Microsoft Office 2003 ve Office'in sonraki sürümlerinde Primary ınterop Assemblies (Pıa) içerir. Microsoft Office XP Pıa içermez, ancak bunlar karşıdan yüklenmesi. Office XP Pıa hakkında'daha fazla bilgi için Microsoft Knowledge Base'deki makaleyi görüntülemek üzere aşağıdaki makale numarasını tıklatın:
      328912Microsoft Office XP ana birlikte çalışma derlemeleri (PIA) karşıdan yüklenebilir
    3. Seçimlerinizi kabul etmek için Tamam <a0>Başvuru Ekle</a0> iletişim kutusunda tıklatın. Seçtiğiniz kitaplıklar için sar?c?lar? oluşturmak isteyen bir ileti alırsanız, Evet ' i tıklatın.
  3. Görünüm menüsünde, araç kutusunu görüntülemek için araç seçin ve sonra da Form1'e bir düğme ekleyin.
  4. Button1</a1> çift tıklatın. Formun kod penceresi görüntülenir.
  5. Kod penceresinde aşağıdaki kodu
        Private Sub Button1_Click(ByVal sender As System.Object, _
          ByVal e As System.EventArgs) Handles Button1.Click
    
        End Sub
    ile:
        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. Aşağıdaki kodu Form1.vb en üstüne ekleyin:
    Imports Word = Microsoft.Office.Interop.Word
  7. Oluşturmak ve bu programı çalıştırmak için F5 tuşuna basın.
Kod tamamlandıktan sonra sizin için oluşturulan belgeyi inceleyin. Belge, biçimlendirilmiş bir paragraf, tablo ve grafik iki sayfa içeriyor.

Şablon kullan

Otomasyon tüm ortak biçimindeki belgeleri oluşturmak için kullanıyorsanız, önceden biçimlendirilmiş bir şablona dayalı yeni bir belge işlemi başlayarak yararlanabilirsiniz. Word Otomasyonu istemcinizle birlikte bir şablonu kullanarak, hiçbir şey bir belge oluşturma iki önemli avantajları vardır:
  • Belgelerinizi, biçimlendirmesini ve yerleşimini, nesneler üzerinde daha fazla denetim sağlayabilirsiniz.
  • Belgelerinizi daha az kod ile oluşturabilirsiniz.
Bir şablonu kullanarak, tabloları ve paragrafları belgedeki diğer nesneleri yerleşimini ince ayar olarak bu nesnelerde biçimlendirmeyi ekleyin. Otomasyon kullanarak, kodu aşağıdaki gibi şablona dayalı yeni bir belge oluşturabilirsiniz:
oWord.Documents.Add "<Path to your template>\MyTemplate.dot"
böylece istemci belgedeki belirli bir konuma değişken metin olarak doldurmak için Otomasyon izler, şablon, yer işaretleri tanımlayabilirsiniz:
oDoc.Bookmarks.Item("MyBookmark").Range.Text = "Some Text Here"
oluşturun ve aşağıdaki gibi çalışma zamanında, uygulamak istediğiniz biçimlendirme stilleri depolamak şablon kullanarak başka bir yararı ise:
oDoc.Bookmarks.Item("MyBookmark").Range.Style = "MyStyle"
- veya -
oWord.Selection.Style = "MyStyle"

Referanslar

Microsoft Word otomatikleştirmek için Visual Basic .NET kullanma hakkında daha fazla bilgi için Microsoft Knowledge Base'deki makaleyi görüntülemek üzere aşağıdaki makale numarasını tıklatın:
301656Word, Visual Basic .NET adres-mektup birleştirme gerçekleştirmek için otomatikleştirme
Daha fazla bilgi için aşağıdaki Microsoft Developer Network (MSDN) Web sitelerine bakın:
Visual Studio ile Microsoft Office geliştirme
http://msdn2.microsoft.com/en-us/library/aa188489(office.10).aspx

Office Word'de
http://msdn2.microsoft.com/en-us/library/aa201330(office.11).aspx

Bir diğer Word
http://msdn2.microsoft.com/en-us/library/aa201332(office.11).aspx

Özellikler

Makale numarası: 316383 - Last Review: 24 Mayıs 2007 Perşembe - Gözden geçirme: 11.1
Bu makaledeki bilginin uygulandığı durum:
  • Microsoft Visual Basic .NET 2003 Standard Edition
  • Microsoft Visual Basic .NET 2002 Standard Edition
  • Microsoft Office Word 2007
  • Microsoft Office Word 2003
  • Microsoft Word 2002 Standard Edition
Anahtar Kelimeler: 
kbmt kbexpertiseinter kbautomation kbhowtomaster KB316383 KbMttr
Machine-translated Article
ÖNEMLİ: Bu makale, bir kişi tarafından çevrilmek yerine, Microsoft makine-çevirisi yazılımı ile çevrilmiştir. Microsoft size hem kişiler tarafından çevrilmiş, hem de makine-çevrisi ile çevrilmiş makaleler sunar. Böylelikle, bilgi bankamızdaki tüm makalelere, kendi dilinizde ulaşmış olursunuz. Bununla birlikte, makine tarafından çevrilmiş makaleler mükemmel değildir. Bir yabancının sizin dilinizde konuşurken yapabileceği hatalar gibi, makale; kelime dağarcığı, söz dizim kuralları veya dil bilgisi açısından yanlışlar içerebilir. Microsoft, içeriğin yanlış çevrimi veya onun müşteri tarafından kullanımından doğan; kusur, hata veya zarardan sorumlu değildir. Microsoft ayrıca makine çevirisi yazılımını sıkça güncellemektedir.
Makalenin İngilizcesi aşağıdaki gibidir:316383

Geri Bildirim Ver

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com