Cara Membuat Excel Add Ins dengan VB.NET

Selain dengan menggunakan VBA(Visual Basic for Applications) anda bisa juga membuat add-ins dengan menggunakan VB.NET. Add Ins dengan VB.NET ini mempunyai keunggulan yaitu lebih power full. Karena menggunakan VB.NET inilah anda bisa mengintegrasikan antara Excel dan komponen NET Framework yang fiturnya lebih unggul dibandingkan dengan VBA.

Tetapi, karena menggunakan NET Framework itulah add ins Excel juga mempunyai kelemahan tersendiri yaitu membutuhkan file pendukung yang cukup besar yaitu NET Framework itu sendiri dan juga Visual Studio Runtime Office.

Langkah Awal

Tidak semua versi excel di dukung oleh Visual Studio terutama pada versi lawas seperti Excel 2007. Tetapi karena setiap produk office menjaga kompatibilitasnya anda masih bisa membuat add ins untuk Excel 2007 dengan versi Visual Studio terbaru sekalipun.

Buka Visual Studio anda, lalu klik menu File->New Project. Pilih Template->Office->2010. Setelah itu pilih Excel 2010 add-ins seperti gambar berikut:

Buat Project excel add ins VB.NET

Namai project dan foldernya terserah anda. Jika sudah selesai, secara otomatis Visual Studio membuat class baru dengan nama ThisAddin.
Di situ ada 2 event yang terbentuk yaitu Startup dan Shutdown. Event startup terjadi saat aplikasi di jalankan atau ketika add ins di tambahkan. Sedang shutdown adalah kebalikannya, terjadi saat aplikasi ditutup atau Add ins anda di remove.

Membuat Menu Ribbon

Sebagai langkah awal dalam pembuatan Excel add ins anda bisa membuat menu tab tersendiri seperti gambar di bawah ini.

Tabs add ins excel Ribbons

Klik kanan di solution explorer project anda lalu klik new item. Setelah itu dilakukan, pilih tab Office lalu klik Ribbon XML(lihat gambar yang dilingkari berikut).

Ribbon XML

Namai Ribbon tersebut terserah anda, misal Ribbon1. Secara otomatis Visual Studio akan membentuk class baru dengan nama Ribbon1 dan Ribbon1.xml untuk desainnya.

Jika add ins anda nantinya ingin bisa dipasang di Excel 2007 ubah bagian schema UI(lihat di tulisan customUI xmlns) menjadi “http://schemas.microsoft.com/office/2006/01/customui” .

Kali ini kita akan membuat tombol dan combobox sederhana. Untuk lebih mudahnya silahkan copy paste script Ribbon XML berikut:


<?xml version="1.0" encoding="UTF-8"?>
<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui" onLoad="Ribbon_Load">
  <ribbon>
    <tabs>
      <tab id="ExcelAddinTab" label="Excelku Tab" visible="true">
        <group id="MyGroup"
               label="My Group">
          <button id="mybutton" label="Test button" onAction="OnMybuttonClick" screentip="Messagebox click" supertip="Super tip click"/>
          <comboBox id="mycombo" label="combobox" onChange="OnCombochange">
            <item id="myitem1" label="15"/>
            <item id="myitem2" label="20"/>
        </comboBox>
        </group>
      </tab>
    </tabs>
  </ribbon>
</customUI>


Perhatikan di script onAction dan OnChange. Dua script tersebut membutuhkan callback. Untuk itu anda harus membuat callbacknya di class Ribbon1 misal seperti ini.


Public Sub OnMybuttonclick(ByVal control As Office.IRibbonControl)
        MsgBox(ThisAddIn.appl.ActiveWorkbook.FullName)
    End Sub
Public Sub OnCombochange(ByVal control As Office.IRibbonControl, ByVal text As String)

Dim cell As Microsoft.Office.Interop.Excel.Range = ThisAddIn.appl.ActiveCell
cell.Font.Size = text
End Sub

Untuk daftar callbacknya anda bisa melihat  callback Ribbon Office, sedang untuk daftar control dalam Ribbon anda bisa cek di Control Ribbon Office.

Setelah callback selesai dibuat taruh script berikut di class ThisAddIn


 Protected Overrides Function CreateRibbonExtensibilityObject() As  _
   Microsoft.Office.Core.IRibbonExtensibility
return new Ribbon1
end function

Sebagai langkah terakhir build project anda tersebut lalu buka registry anda. Buka di bagian HKCU\Software\Microsoft\Office\Excel\AddIns. Di sana ada subkey sesuai dengan nama project anda.

Di subkey tersebut ada beberapa value yaitu:

  • FriendlyName: diisi sesuai dengan nama add ins anda
  • Description: Keterangan add ins
  • LoadBehavior: 3 untuk add ins aktif, 2 untuk tidak aktif sedang 1 untuk add ins yang didisabled
  • Manifest:Diisi dengan lokasi file vsto add ins anda.

Agar add ins bisa dipasang di komputer lain yang tidak ada visual studionya maka anda harus menyetting registry windows sebagaimana tersebut di atas.

Untuk contoh lengkap scriptnya anda bisa download link berikut:
Excel Add-ins VB.NET