Bagaimana menjalankan Office macro dengan menggunakan otomatisasi dari Visual Basic.NET

Terjemahan Artikel Terjemahan Artikel
ID Artikel: 306682 - Melihat produk di mana artikel ini berlaku.
Untuk Microsoft Visual C#.NET versi ini Pasal, lihat 306683.
Untuk versi Microsoft Visual C++ artikel ini, Lihat 306686.
Perbesar semua | Perkecil semua

Pada Halaman ini

RINGKASAN

Artikel ini selangkah demi selangkah menjelaskan cara untuk menghubungi kantor Macro dari Visual Basic.NET otomatisasi klien.

Anda dapat menggunakan Microsoft otomatisasi Office untuk membuka dokumen atau membuat dokumen baru yang berisi Visual Basic for Applications (VBA) makro dan jalankan makro di jangka waktu.

INFORMASI LEBIH LANJUT

Berikut contoh otomatisasi klien memanipulasi Server otomatisasi kantor (Access, Excel, PowerPoint, atau kata) didasarkan pada Anda pilihan pada formulir. Setelah klien mulai server otomatisasi, membuka dokumen dan kemudian panggilan dua makro. Tidak memiliki makro pertama, DoKbTest, parameter dan makro kedua, DoKbTestWithParameter, mengambil satu parameter jenisString.

Membuat dokumen kantor yang berisi makro

  1. Membuat dokumen Word yang bernama C:\Doc1.doc. Untuk melakukan hal ini, Ikuti langkah berikut:
    1. Dalam kata, membuat dokumen baru.
    2. Tekan ALT + F11 untuk membuka Visual Basic Editor.
    3. Pada Masukkan menu, klik Modul.
    4. Paste kode makro berikut dalam modul baru:
      '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. Menutup Editor Visual Basic, Simpan dokumen Word, dan keluar dari Word.
  2. Buat buku kerja Excel yang bernama C:\Book1.xls dengan menggunakan langkah-langkah mirip dengan yang digunakan untuk membuat dokumen Word.
  3. Membuat presentasi PowerPoint yang bernama C:\Pres1.ppt oleh menggunakan langkah-langkah yang mirip yang digunakan untuk membuat kata dokumen.
  4. Buat database akses baru bernama C:\Db1.mdb. Untuk melakukan hal ini, Ikuti langkah berikut:
    1. Pada Masukkan menu, klik Modul.
    2. Paste kode makro dalam modul baru.
    3. Simpan modul dan berhenti akses.

Menciptakan Visual Basic.BERSIH klien otomasi

  1. Mulai Microsoft Visual Studio.NET. Pada Berkas menu, klik Baru, lalu klik Project. Pilih Aplikasi Windows dari jenis proyek Visual Basic. Form1 dibuat oleh default.
  2. Menambahkan referensi ke Access, Excel, PowerPoint, dan Word perpustakaan objek. Untuk melakukannya, ikuti langkah-langkah berikut:
    1. Pada Project menu, klik Menambahkan referensi.
    2. Pada COM tab, Cari Perpustakaan objek Microsoft Word 10,0 atau perpustakaan objek Microsoft Word 11,0, lalu klik Pilih.

      Catatan Jika Anda menggunakan Microsoft Office XP dan Anda tidak sudah melakukannya, Microsoft menganjurkan Anda untuk men-download dan kemudian instal Microsoft Office XP dasar Interop Majelis (PIAs). Untuk informasi lebih lanjut tentang Office XP PIAs, klik sejumlah artikel berikut untuk melihat artikel di dalam Basis Pengetahuan Microsoft:
      328912Microsoft Office XP utama interop Majelis (PIAs) tersedia untuk di-download
    3. Ulangi langkah sebelumnya untuk Access, Excel, dan PowerPoint objek perpustakaan.
    4. Klik Oke dalam Menambahkan referensi kotak dialog untuk menerima pilihan Anda. Jika Anda menerima prompt untuk menghasilkan pembungkus untuk perpustakaan yang Anda pilih, klik Ya.

      Catatan Jika Anda menerima pesan galat ketika Anda referensi akses 10,0 objek perpustakaan, lihat bagian "Pemecahan masalah".
  3. Pada Lihat menu, klik ToolBox. Menambahkan kotak kombo dan tombol untuk Form1.
  4. Klik dua kali Button1 untuk menghasilkan definisi untuk kegiatan klik tombol Handler.
  5. Paste kode berikut dalam prosedur Button1_Click:
    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. Pada Lihat menu, klik Perancang dan double-klik Form1 untuk menghasilkan definisi untuk acara buka formulir.
  7. Paste kode berikut dalam prosedur Form1_Load:
            ComboBox1.DropDownStyle = ComboBoxStyle.DropDownList
            Dim a As String() = {"Access", "Excel", "PowerPoint", "Word"}
            ComboBox1.Items.AddRange(a)
            ComboBox1.SelectedIndex = 0
    					
  8. Menambahkan kode berikut ke atas Form1.vb:
    Imports Access = Microsoft.Office.Interop.Access
    Imports Excel = Microsoft.Office.Interop.Excel
    Imports Word = Microsoft.Office.Interop.Word
    Imports PowerPoint = Microsoft.Office.Interop.PowerPoint
    					

Menjalankan dan menguji klien otomasi

  1. Tekan F5 untuk menjalankan aplikasi.
  2. Pilih aplikasi Office dari ComboBox1, lalu klik Button1. Mulai aplikasi Office yang Anda pilih dan DoKBTest dan DoKBTestWithParameter macro dieksekusi.

Pemecahan Masalah

Ketika Anda referensi perpustakaan objek akses 10,0 dalam Visual Dasar.NET proyek, Anda mungkin menerima pesan galat yang menyatakan bahwa konversi dari perpustakaan untuk.NET Majelis gagal. Untuk lebih informasi tentang cara mengatasi masalah ini sehingga Anda dapat berhasil referensi perpustakaan objek akses 10,0, klik nomor artikel di bawah ini untuk melihat artikel di dalam Basis Pengetahuan Microsoft:
317157PRB: Kesalahan ketika Anda referensi Perpustakaan jenis akses 10,0 dengan Visual Studio.NET

REFERENSI

Untuk informasi lebih lanjut, klik nomor artikel di bawah ini untuk melihat artikel di Basis Pengetahuan Microsoft:
303871Cara membuat makro Excel dengan menggunakan otomatisasi dari Visual Basic.NET
177760 ACC97: Bagaimana menjalankan makro dalam program Office lainnya
Untuk informasi lebih lanjut dan sumber daya tentang Office Otomatisasi, kunjungi Website Microsoft berikut:
Microsoft Office Development with Visual Studio
.aspx http://msdn2.Microsoft.com/en-us/library/aa188489 (office.10)

FAQ dan Highlights untuk pengembangan Office
http://msdn2.Microsoft.com/en-US/Office/default.aspx

Properti

ID Artikel: 306682 - Kajian Terakhir: 24 September 2011 - Revisi: 2.0
Berlaku bagi:
  • 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
  • Microsoft Office Access 2003
  • Microsoft Office PowerPoint 2003
Kata kunci: 
kbautomation kbhowto kbmt KB306682 KbMtid
Penerjemahan Mesin
PENTING: Artikel ini diterjemahkan menggunakan perangkat lunak mesin penerjemah Microsoft dan bukan oleh seorang penerjemah. Microsoft menawarkan artikel yang diterjemahkan oleh seorang penerjemah maupun artikel yang diterjemahkan menggunakan mesin sehingga Anda akan memiliki akses ke seluruh artikel baru yang diterbitkan di Pangkalan Pengetahuan (Knowledge Base) dalam bahasa yang Anda gunakan. Namun, artikel yang diterjemahkan menggunakan mesin tidak selalu sempurna. Artikel tersebut mungkin memiliki kesalahan kosa kata, sintaksis, atau tata bahasa, hampir sama seperti orang asing yang berbicara dalam bahasa Anda. Microsoft tidak bertanggung jawab terhadap akurasi, kesalahan atau kerusakan yang disebabkan karena kesalahan penerjemahan konten atau penggunaannya oleh para pelanggan. Microsoft juga sering memperbarui perangkat lunak mesin penerjemah.
Klik disini untuk melihat versi Inggris dari artikel ini:306682

Berikan Masukan

 

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