Makale numarası: 306682 - Son Gözden Geçirme: 29 Haziran 2007 Cuma - Gözden geçirme: 4.6

Otomasyon'dan Visual Basic .NET kullanarak Office makro çalıştırma

Sistem İpucuBu makale, kullandığınızdan farklı bir işletim sistemine yöneliktir. Sizinle ilgili olmayabilecek makale içeriği devre dışı bırakıldı.
Bu makalenin Microsoft Visual C# .NET sürümü için bkz: 306683  (http://support.microsoft.com/kb/306683/ ) .
Bu makalenin Microsoft Visual C++ sürümü için bkz: 306686  (http://support.microsoft.com/kb/306686/ ) .

Bu Sayfada

Hepsini aç | Hepsini kapa

Özet

Bu adım adım makalede, Office aranacak açıklamaktadır makroları Visual Basic .NET Otomasyon istemciden.

Microsoft Office Otomasyonu, bir belge açtığınızda veya bir Visual Basic for Applications (VBA) makrosu içeren yeni bir belge oluşturmak ve zamanında makroyu çalıştırmak için kullanabilirsiniz.

Daha fazla bilgi

Aşağıdaki örnek Automation istemcisi, bir formdaki seçiminize dayalı bir Office Otomasyonu Sunucusu (Access, Excel, PowerPoint veya Word) yönetir. Otomasyon sunucusu istemci başladıktan sonra bir belge açılır ve iki makrolar'ı çağırır. Ilk makro DoKbTest, parametre vardır ve ikinci bir makro, DoKbTestWithParameter, dize türünde tek bir parametre alır.

Makro içeren office belgeleri oluşturma

  1. C:\Doc1.doc adlı bir Word belgesi oluşturursunuz. Bunu yapmak için şu adımları izleyin:
    1. Word'de, yeni bir belge oluşturun.
    2. Visual Basic Editor'ı açmak için ALT+F11 tuş bileşimine basın.
    3. Ekle menüsünden modülü ' nü tıklatın.
    4. Yeni modüle aşağıdaki makro kodu yapıştırın:
      'Display a message box that displays the application name.
      Public Sub DoKbTest()
         MsgBox "Hello from " & Application.Name
      End Sub
      
      'Display a message box with the string passed from the
      'Automation client.
      Public Sub DoKbTestWithParameter( sMsg As String )
         MsgBox sMsg
      End Sub
    5. Visual Basic Düzenleyicisi'ni kapatın, Word belgeyi kaydedin ve Word'den çıkın.
  2. Word belgesi oluşturmak için kullanılan benzer adımları kullanarak C:\Book1.xls adlı bir Excel çalışma kitabı oluşturun.
  3. Sözcük oluşturmak için kullanılan benzer adımları kullanarak C:\Pres1.ppt adlı bir PowerPoint sunusu oluşturmak belge.
  4. C:\Db1.mdb adlı yeni bir Access veritabanı oluşturun. Bunu yapmak için şu adımları izleyin:
    1. Ekle menüsünden modülü ' nü tıklatın.
    2. Makro kodu Yeni modüle yapıştırın.
    3. Modülü kaydetmek ve Access'ten çıkmak.

Visual Basic .NET Otomasyon istemciye oluşturun

  1. Microsoft Visual Studio .NET'i başlatın. Dosya menüsünden Yeni ' yi tıklatın ve sonra Project ' i tıklatın. Visual Basic Projects türlerinden Windows Application ' ı seçin. Varsayılan olarak, Form1 oluşturulur.
  2. Access, Excel, PowerPoint ve Word nesne kitaplıklarına 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 10.0 Nesne Kitaplığı ya da Microsoft Word 11.0 Nesne Kitaplığı'nı bulun ve sonra da <a2>Seç</a2>'i tıklatın.

      Not Microsoft, Microsoft Office XP kullanıyorsanız ve önceden yapmadıysanız, karşıdan yükleyin ve sonra Microsoft Office XP Primary ınterop Assemblies (Pıa) yükleyin önerir. 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:
      328912  (http://support.microsoft.com/kb/328912/ ) Microsoft Office XP ana birlikte çalışma derlemeleri (PIA) karşıdan yüklenebilir
    3. Önceki adımı, Access, Excel ve PowerPoint nesne kitaplıkları için yineleyin.
    4. 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.

      Not Erişim başvuru yaptığınızda hata iletisi alırsanız 10.0 kitaplık nesnesini, "Sorun giderme" bölümüne bakın.
  3. Görünüm menüsünde ToolBox ' ı tıklatın. Form1'e, birleşik giriş kutusu ve bir düğme ekleyin.
  4. Bir tanımı için düğmenin tıklatma oluşturmak için Button1 çift olay işleyicisi.
  5. ' De <a2>Button1_Click</a2> yordamına aşağıdaki kodu yapıştırın:
    Select Case ComboBox1.SelectedItem
    
        Case "Access"
    
            Dim oAccess As Access.ApplicationClass
    
            'Start Access and open the database.
            oAccess = CreateObject("Access.Application")
            oAccess.Visible = True
            oAccess.OpenCurrentDatabase("c:\db1.mdb", False)
    
            'Run the macros.
            oAccess.Run ("DoKbTest")
            oAccess.Run("DoKbTestWithParameter", "Hello from VB .NET Client")
    
            'Clean-up: Quit Access without saving changes to the database.
            oAccess.DoCmd().Quit (Access.AcQuitOption.acQuitSaveNone)
            System.Runtime.InteropServices.Marshal.ReleaseComObject (oAccess)
            oAccess = Nothing
    
        Case "Excel"
    
            Dim oExcel As Excel.ApplicationClass
            Dim oBook As Excel.WorkbookClass
            Dim oBooks As Excel.Workbooks
    
            'Start Excel and open the workbook.
            oExcel = CreateObject("Excel.Application")
            oExcel.Visible = True
            oBooks = oExcel.Workbooks
            oBook = oBooks.Open("c:\book1.xls")
    
            'Run the macros.
            oExcel.Run ("DoKbTest")
            oExcel.Run("DoKbTestWithParameter", "Hello from VB .NET Client")
    
            'Clean-up: Close the workbook and quit Excel.
            oBook.Close (False)
            System.Runtime.InteropServices.Marshal.ReleaseComObject (oBook)
            oBook = Nothing
            System.Runtime.InteropServices.Marshal.ReleaseComObject (oBooks)
            oBooks = Nothing
            oExcel.Quit()
            System.Runtime.InteropServices.Marshal.ReleaseComObject (oExcel)
            oExcel = Nothing
    
        Case "PowerPoint"
    
            Dim oPP As PowerPoint.ApplicationClass
            Dim oPresSet As PowerPoint.Presentations
            Dim oPres As PowerPoint.PresentationClass
    
            'Start PowerPoint and open the presentation.
            oPP = CreateObject("PowerPoint.Application")
            oPP.Visible = True
            oPresSet = oPP.Presentations
            oPres = oPresSet.Open("c:\pres1.ppt", , , True)
    
            'Run the macros.
            oPP.Run ("'pres1.ppt'!DoKbTest")
            oPP.Run("'pres1.ppt'!DoKbTestWithParameter", "Hello from VB .NET Client")
    
            'Clean-up: Close the presentation and quit PowerPoint.
            oPres.Close()
            System.Runtime.InteropServices.Marshal.ReleaseComObject (oPres)
            oPres = Nothing
            System.Runtime.InteropServices.Marshal.ReleaseComObject (oPresSet)
            oPresSet = Nothing
            oPP.Quit()
            System.Runtime.InteropServices.Marshal.ReleaseComObject (oPP)
            oPP = Nothing
    
        Case "Word"
    
            Dim oWord As Word.ApplicationClass
    
            'Start Word and open the document.
            oWord = CreateObject("Word.Application")
            oWord.Visible = True
            oWord.Documents.Open ("C:\Doc1.doc")
    
            'Run the macros.
            oWord.Run ("DoKbTest")
            oWord.Run("DoKbTestWithParameter", "Hello from VB .NET Client")
    
            'Quit Word.
            oWord.Quit()
            System.Runtime.InteropServices.Marshal.ReleaseComObject (oWord)
            oWord = Nothing
    
    End Select
    
    GC.Collect() 
  6. Görünüm menüsünde Tasarımcısı ' nı tıklatın ve formun Load olayı için bir tanım oluşturulacak Form1 ' ı çift tıklatın.
  7. Form1_Load yordamda aşağıdaki kodu yapıştırın:
            ComboBox1.DropDownStyle = ComboBoxStyle.DropDownList
            Dim a As String() = {"Access", "Excel", "PowerPoint", "Word"}
            ComboBox1.Items.AddRange(a)
            ComboBox1.SelectedIndex = 0
    					
  8. Aşağıdaki kodu Form1.vb en üstüne ekleyin:
    Imports Access = Microsoft.Office.Interop.Access
    Imports Excel = Microsoft.Office.Interop.Excel
    Imports Word = Microsoft.Office.Interop.Word
    Imports PowerPoint = Microsoft.Office.Interop.PowerPoint
    					

Çalıştırın ve otomasyon istemci sınayın.

  1. Uygulamayı çalıştırmak için F5 tuşuna basın.
  2. Bir Office uygulaması ComboBox1 seçin ve Button1</a1>'ı tıklatın. Seçtiğiniz bir Office uygulaması başlatıldı ve DoKBTest ve DoKBTestWithParameter makro yürütülür.

SORUN GİDERME

Bir Visual Basic .NET projesini Access 10.0 nesne kitaplığında başvuruda bulunacağınız zaman, kitaplık, bir .NET derlemesi dönüştürme başarısız olduğunu bildiren bir hata iletisi alabilirsiniz. Access 10.0 Nesne kitaplığı başarıyla başvurmak için bu sorunun nasıl giderileceği 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:
317157  (http://support.microsoft.com/kb/317157/ ) SORUN: Visual Studio. NET'le Access 10.0 tür kitaplığı başvuruda bulunacağınız zaman hataları

Referanslar

Daha fazla bilgi için, Microsoft Bilgi Bankası'ndaki makaleyi görüntülemek üzere aşağıdaki makale numarasını tıklatın:
303871  (http://support.microsoft.com/kb/303871/ ) Otomasyon'dan Visual Basic .NET kullanarak bir Excel makro oluşturma
177760  (http://support.microsoft.com/kb/177760/ ) ACC97: diğer Office programlarında Makroları çalıştırmak How
Daha fazla bilgi ve kaynaklar hakkında Office Otomasyonu için aşağıdaki Microsoft Web sitelerini ziyaret edin:
Visual Studio ile Microsoft Office geliştirme
http://msdn2.microsoft.com/en-us/library/aa188489(office.10).aspx (http://msdn2.microsoft.com/en-us/library/aa188489(office.10).aspx)

Sık sorulan sorular ve Office geliştirme için önemli noktalar
http://msdn2.microsoft.com/en-us/office/default.aspx (http://msdn2.microsoft.com/en-us/office/default.aspx)

Bu makaledeki bilginin uygulandığı durum:
  • Microsoft Visual Basic .NET 2003 Standard Edition
  • Microsoft Visual Basic .NET 2002 Standard Edition
  • Microsoft Access 2002 Standard Edition
  • Microsoft Excel 2002 Standard Edition
  • Microsoft PowerPoint 2002 Standard Edition
  • Microsoft Word 2002 Standard Edition
  • Microsoft Office Access 2003
  • Microsoft Office Excel 2003
  • Microsoft Office PowerPoint 2003
  • Microsoft Office Word 2003
Anahtar Kelimeler: 
kbmt kbautomation kbhowto KB306682 KbMttr
Otomatik TercümeOtomatik Tercüme
Ö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:306682  (http://support.microsoft.com/kb/306682/en-us/ )