Bagikan melalui


Panduan: Pemrograman Office di Visual Basic

Visual Studio menawarkan fitur di Visual Basic yang meningkatkan pemrograman Microsoft Office. Fitur dalam Visual Basic termasuk properti yang diimplementasikan secara otomatis, pernyataan dalam lambda expression, dan collection initializer. Anda dapat menyematkan informasi jenis, yang memungkinkan penyebaran rakitan yang berinteraksi dengan komponen COM tanpa menyebarkan rakitan interop utama (PIA) ke komputer pengguna. Untuk informasi selengkapnya, lihat Panduan: Menyematkan Tipe dari Rakitan Terkelola.

Panduan ini menunjukkan fitur-fitur ini dalam konteks pemrograman Office, tetapi banyak dari fitur-fitur ini juga berguna dalam pemrograman umum. Dalam panduan, Anda menggunakan aplikasi Add-in Excel untuk membuat buku kerja Excel. Selanjutnya, Anda membuat dokumen Word yang berisi tautan ke buku kerja. Terakhir, Anda akan melihat cara mengaktifkan dan menonaktifkan dependensi PIA.

Prasyarat

Untuk menyelesaikan panduan ini, Anda harus menginstal Microsoft Office Excel dan Microsoft Office Word.

Catatan

Komputer Anda mungkin memperlihatkan nama atau lokasi yang berbeda untuk beberapa elemen antarmuka pengguna Visual Studio dalam petunjuk berikut. Edisi Visual Studio yang Anda miliki dan setelan yang Anda gunakan menentukan elemen-elemen ini. Untuk informasi selengkapnya, lihat Mempersonalisasi IDE.

Menyiapkan aplikasi Add-in Excel

  1. Mulai Visual Studio.

  2. Pada menu File, arahkan ke Baru, lalu klik Proyek.

  3. Di panel Templat Terinstal , perluas Visual Basic, perluas Office, lalu klik tahun versi produk Office.

  4. Di panel Template, klik Add-in versi< Excel>.

  5. Lihat di bagian atas panel Template untuk memastikan bahwa .NET Framework 4 atau versi yang lebih baru, muncul di kotak Target Framework.

  6. Ketik nama untuk proyek Anda di kotak Name, jika Anda mau.

  7. Klik OK.

  8. Proyek baru muncul di Penjelajah Solusi.

Menambahkan referensi

  1. Di Solution Explorer, klik kanan nama proyek Anda, lalu klik Add Reference. Kotak dialog Add Reference muncul.

  2. Pada tab Assemblies, pilih Microsoft.Office. Interop. Excel, versi <version>.0.0.0 (untuk kunci ke nomor versi produk Office, lihat Microsoft Version), di daftar Component Name, lalu tahan kunci CTRL dan pilih Microsoft.Office. Interop.Word, version <version>.0.0.0. Jika Anda tidak melihat rakitan, Anda mungkin perlu memastikan rakitan diinstal dan ditampilkan (lihat Cara: Menginstal Office Rakitan Interop Utama).

  3. Klik OK.

Menambahkan pernyataan Impor yang diperlukan atau menggunakan direktif

  1. Di Solution Explorer, klik kanan file ThisAddIn.vb atau ThisAddIn.cs lalu klik View Code.

  2. Tambahkan pernyataan berikut Imports ke bagian atas file kode jika belum ada.

    Imports Microsoft.Office.Interop
    

Membuat daftar rekening bank

  1. Di Solution Explorer, klik kanan nama proyek Anda, klik Add, dan kemudian klik Class. Beri nama kelas Account.vb. Klik Add.

  2. Ganti definisi class Account dengan kode berikut. Definisi class menggunakan properti yang diimplementasikan secara otomatis. Untuk informasi selengkapnya, lihat Properti yang Diterapkan Secara Otomatis.

    Public Class Account
        Property ID As Integer = -1
        Property Balance As Double
    End Class
    
  3. Untuk membuat bankAccounts daftar yang berisi dua akun, tambahkan kode berikut ke ThisAddIn_Startup metode di ThisAddIn.vb. Deklarasi daftar menggunakan collection initializer. Untuk informasi selengkapnya, lihat Collection Initializer.

    Dim bankAccounts As New List(Of Account) From {
        New Account With {
                              .ID = 345,
                              .Balance = 541.27
                         },
        New Account With {
                              .ID = 123,
                              .Balance = -127.44
                         }
        }
    

Mengekspor data ke Excel

  1. Dalam file yang sama, tambahkan method berikut ke class ThisAddIn. Method ini menyiapkan buku kerja Excel dan mengekspor data ke dalamnya.

    Sub DisplayInExcel(ByVal accounts As IEnumerable(Of Account),
                   ByVal DisplayAction As Action(Of Account, Excel.Range))
    
        With Me.Application
            ' Add a new Excel workbook.
            .Workbooks.Add()
            .Visible = True
            .Range("A1").Value = "ID"
            .Range("B1").Value = "Balance"
            .Range("A2").Select()
    
            For Each ac In accounts
                DisplayAction(ac, .ActiveCell)
                .ActiveCell.Offset(1, 0).Select()
            Next
    
            ' Copy the results to the Clipboard.
            .Range("A1:B3").Copy()
        End With
    End Sub
    
    • Method Add memiliki parameter opsional untuk menentukan template tertentu. Parameter opsional memungkinkan Anda menghilangkan argumen untuk parameter tersebut jika Anda ingin menggunakan nilai default parameter. Karena tidak ada argumen yang dikirim dalam kode berikut, Add menggunakan template default dan membuat buku kerja baru.

    • Properti Range dan Offset objek Rentang menggunakan fitur properti terindeks. Properti terindeks juga memungkinkan Anda menggunakan properti Value dari objek Range, menghilangkan kebutuhan untuk menggunakan properti Value2. Properti Value terindeks, tetapi indeks bersifat opsional. Argumen opsional dan properti terindeks bekerja sama dalam contoh berikut.

  2. Tambahkan kode berikut di akhir DisplayInExcel untuk menyesuaikan lebar kolom agar sesuai dengan konten.

    ' Add the following two lines at the end of the With statement.
    .Columns(1).AutoFit()
    .Columns(2).AutoFit()
    

    Untuk informasi selengkapnya tentang menyematkan jenis interop, lihat prosedur "Untuk menemukan referensi PIA" dan "Untuk memulihkan dependensi PIA" nanti di artikel ini.

Panggil DisplayInExcel

  1. Tambahkan kode berikut di akhir method ThisAddIn_StartUp. Panggilan ke DisplayInExcel berisi dua argumen. Argumen pertama adalah nama daftar akun yang akan diproses. Argumen kedua adalah lambda expression multibaris yang menentukan bagaimana data akan diproses. Nilai ID dan balance untuk setiap akun ditampilkan dalam sel yang berdekatan, dan baris ditampilkan dalam warna merah jika saldo kurang dari nol.

    DisplayInExcel(bankAccounts,
           Sub(account, cell)
               ' This multiline lambda expression sets custom
               ' processing rules for the bankAccounts.
               cell.Value = account.ID
               cell.Offset(0, 1).Value = account.Balance
    
               If account.Balance < 0 Then
                   cell.Interior.Color = RGB(255, 0, 0)
                   cell.Offset(0, 1).Interior.Color = RGB(255, 0, 0)
               End If
           End Sub)
    
  2. Tekan F5 untuk menjalankan program. Lembar kerja Excel muncul yang berisi data dari dua akun.

Menambahkan dokumen Word

  1. Tambahkan kode berikut di akhir method ThisAddIn_StartUp untuk membuat dokumen Word yang berisi tautan ke buku kerja Excel.

    Dim wordApp As New Word.Application
    wordApp.Visible = True
    wordApp.Documents.Add()
    wordApp.Selection.PasteSpecial(Link:=True, DisplayAsIcon:=True)
    

    Method PasteSpecial memiliki tujuh parameter, yang semuanya didefinisikan sebagai parameter referensi opsional. Argumen bernama dan argumen opsional memungkinkan Anda menunjuk parameter yang ingin Anda akses berdasarkan nama dan mengirim argumen hanya ke parameter tersebut. Dalam contoh ini, argumen dikirim untuk menunjukkan bahwa tautan ke buku kerja di Clipboard harus dibuat (parameter Link) dan bahwa tautan akan ditampilkan dalam dokumen Word sebagai ikon (parameter DisplayAsIcon).

Menjalankan aplikasi

  1. Klik F5 untuk menjalankan aplikasi. Excel memulai dan menampilkan tabel yang berisi informasi dari dua akun di bankAccounts. Lalu dokumen Word muncul yang berisi tautan ke tabel Excel.

Membersihkan proyek yang telah selesai

  1. Di Visual Studio, klik Clean Solution pada menu Build. Jika tidak, add-in akan berjalan setiap kali Anda membuka Excel di komputer Anda.

Menemukan referensi PIA

  1. Jalankan aplikasi lagi, tetapi jangan klik Clean Solution.

  2. Pilih Start. Temukan versi< Microsoft Visual Studio > dan buka developer command prompt.

  3. Ketik ildasm Developer Command Prompt untuk di jendela Visual Studio, lalu tekan ENTER. Jendela IL DASM muncul.

  4. Pada menu File di jendela IL DASM, pilih File>Open. Klik dua kali versi< Visual Studio>, lalu klik dua kali Projects. Buka folder untuk proyek Anda, dan lihat di folder bin/Debug untuk nama proyek Anda.dll. Klik dua kali nama proyek Anda.dll. Jendela baru menampilkan atribute proyek Anda, selain referensi ke modul dan rakitan lain. Perhatikan bahwa namespace Microsoft.Office.Interop.Excel dan Microsoft.Office.Interop.Word disertakan dalam perakitan. Secara default dalam Visual Studio, compiler mengimpor tipe yang Anda butuhkan dari PIA yang direferensikan ke dalam rakitan Anda.

    Untuk informasi selengkapnya, lihat topik Cara: Menampilkan Konten Rakitan.

  5. Klik dua kali ikon MANIFEST. Jendela muncul yang berisi daftar rakitan yang berisi item yang dirujuk oleh proyek. Microsoft.Office.Interop.Excel dan Microsoft.Office.Interop.Word tidak disertakan dalam daftar. Karena tipe kebutuhan proyek Anda telah diimpor ke assembly Anda, referensi ke PIA tidak diperlukan. Ini membuat deployment lebih mudah. PIA tidak harus ada di komputer pengguna, dan karena aplikasi tidak memerlukan deployment versi PIA tertentu, aplikasi dapat dirancang untuk bekerja dengan beberapa versi Office, asalkan API yang diperlukan ada di semua versi.

    Karena deployment PIA tidak lagi diperlukan, Anda dapat membuat aplikasi dalam skenario lanjutan yang berfungsi dengan beberapa versi Office, termasuk versi sebelumnya. Namun, ini hanya berfungsi jika kode Anda tidak menggunakan API apa pun yang tidak tersedia dalam versi Office yang sedang Anda kerjakan. Tidak selalu jelas apakah API tertentu tersedia dalam versi yang lebih lama, dan karena alasan itu bekerja dengan versi Office yang lebih lama tidak disarankan.

    Catatan

    Office tidak menerbitkan PIA sebelum Office 2003. Oleh karena itu, satu-satunya cara untuk menghasilkan rakitan interop untuk Office 2002 atau versi yang lebih lama adalah dengan mengimpor referensi COM.

  6. Tutup jendela manifes dan jendela rakitan.

Memulihkan dependensi PIA

  1. Di Solution Explore, pilih tombol Show All Files. Perluas folder Referensi dan pilih Microsoft.Office. Interop. Excel. Tekan F4 untuk membuka jendela Properti.
  2. Di jendela Properti, ubah properti Embed Interop Types dariTruekeFalse.
  3. Ulangi langkah 1 dan 2 dalam prosedur ini untuk Microsoft.Office.Interop.Word.
  4. Tekan F5 untuk memverifikasi bahwa proyek berjalan dengan benar.
  5. Ulangi langkah 1-3 dari prosedur sebelumnya untuk membuka jendela perakitan. Perhatikan bahwa Microsoft.Office.Interop.Word dan Microsoft.Office.Interop.Excel tidak lagi dalam daftar rakitan yang disematkan.
  6. Klik dua kali ikon MANIFEST dan gulir daftar rakitan yang dirujuk. Keduanya Microsoft.Office.Interop.Word dan Microsoft.Office.Interop.Excel ada dalam daftar. Karena aplikasi mereferensikan Excel dan Word PIA, dan properti Embed Interop Type diatur ke False, kedua rakitan harus ada di komputer pengguna akhir.
  7. Di Visual Studio, klik Clean Solution pada menu Build untuk membersihkan proyek yang telah selesai.

Lihat juga