Anda di halaman 1dari 8

Membuat Fungsi Sendiri dengan VBA Excel

Pada bab ini penulis akan membahas bagaimana cara membuat fungsi yang dibuat sendiri (user define function) pada Excel menggunakan VBA. Hal ini berguna bila kita hendak membutuhkan sebuah fungsi yang tidak disediakan oleh Microsoft Excel. Pada bahasan kali ini, penulis akan membuat fungsi yang akan merubah angka menjadi kata-kata pada Excel 2007. Tulisan ini diinspirasi oleh komentas salah seorang pembacabernama Pak Djoko Prakoso (djoko.prakoso.13@gmail.com) pada tulisan "Memulai Macro Excel" MEMBUAT BERKAS YANG MEMILIKI MACRO PADA EXCEL 2007 Karena menggunakan Excel 2007 maka berkas Excel yang kita buat haruslah menggunakan extensi .xslm. Sekarang mari kita membuat sebuah berkas baru Excel, berkas tersebut masih dalam format .xslx.

Buka berkas tersebut, kemudian simpan sebagai (save as) fungsi sendiri.xslm.

Maka kita telah membuat sebuah berkas Excel 2007 yang dapat menggunakan macro (macro enabled). Lalu kita atur keamanan dan privasi Excel kita pada Macro Settings dan Trusted Location (lokasi terpercaya tempat kita menyimpan berkas-berkas excel ber-macro), sehingga macro yang telah kita buat dapat bekerja. Kedua pengaturan tersebut terdapat pada Excel Option-Trust Center-Trust_Center Settings.

Pada pengaturan Macro, pilih Disabled All Macro Except Digitally Signed Macros (pilihan ke 3) atau Enabled All Macro (pilihan ke 4), penulis menyarankan pilihan ke-4 bagi pemula.

Kemudian kita atur juga lokasi folder yang terpercaya (Trusted Location), di komputer penulis terletak di E:\VBA\. Jangan lupa untuk mencentang pilihan Subfolder of this location also trusted agar subfolder dari folder ini juga dipercaya. MEMBUAT FUNGSI MERUBAH ANGKA KE KATA UNTUK ANGKA TUNGGAL Untuk membuat fungsi sendiri, maka kita perlu membuat prosedur fungsi (function procedure) VBA pada module di Visual Basic Editor.

Sekarang kita telah membuat sebuah fungsi bernama angka_ke_kata yang akan menghasilkan sebuah kata (tipe data string) dengan argumen sebuah angka (tipe data double). Tipe data string diperuntukkan untuk teks, sedangkan tipe data double diperuntukkan untuk bilangan asli dan pecahan. Function angka_ke_kata(angka As Double) As String

Dalam fungsi ini pertama kita akan menyiapkan array yang berisi teks yang berassosiasi dengan bilangan yang dimaksud. Array itu kita beri nama kata_angka, berukuran 10, yang beranggotakan kata untuk bilangan dari nol sampai sembilan. Dim kata_angka(10) As String kata_angka(0) = "nol" kata_angka(1) = "satu" kata_angka(2) = "dua" kata_angka(3) = "tiga" kata_angka(4) = "empat" kata_angka(5) = "lima" kata_angka(6) = "enam" kata_angka(7) = "tujuh" kata_angka(8) = "delapan" kata_angka(9) = "sembilan"

Berdasarkan array ini kita sudah dapat membuat sebuah fungsi yang merubah angka tunggal menjadi kata. Kita cukup menambahkan kode VBA yang mengembalikan kata yang sesuai dengan argumen angka ketika fungsi kata_ke_angka dipanggil. angka_ke_kata = kata_angka(angka)

Sekarang kita kembali ke sheet1 pada workbook Excel untuk mencoba fungsi yang telah dibuat. Isikan angka pada sel A1 kemudian pada sel A2 masukkan fungsi excel angka_ke_kata. Fungsi ini terletak pada pilihan fungsi user defined.

MEMBUAT FUNGSI MERUBAH ANGKA KE KATA UNTUK ANGKA LEBIH DARI 9 Sejauh ini kita telah membuat sebuah fungsi yang merubah angka ke kata. Tapi fugnsi ini bekerja hanya untuk angka-angka tunggal (dari nol sampai Sembilan). Lebih dari itu maka fugnsi init akan menghasilkan kesalahan, sebagai contoh kita tuliskan nilai 10 atau 200 di sel A1.

Selanjutnya kita akan melengkapi kode-kode di fungsi yang telah kita buat, sehingga dapat merubah angka lebih dari 9 menjadi kata. Algoritma nya sebenarnya cukup mudah, fungsi yang kita buat pertamaakan menghitung panjang angka yang akan diubah. Setelah itu fungsi tersebut akan merubah tiap anggota angka menggunakan array kata_angka seperti bahaasan sebelumnya, kemudian menggabungkan hasilhasilnya. Sehingga hasil yang akan didapat nanti adalah berupa gabungan kata-kata, atau lebih tepatnya disebut kalimat. Dalam Visual Basic dikenal fungsi Len(pernyataan) yang berguna untuk mengetahui panjang sebuah teks (kata atau kalimat). Karena angka yang kita ubah berupa bilangan bukan teks, maka kita perlu merubah angka tersebut menjadi teks dengan fungsi Cstr(pernyataan). Bilangan dalam format data double yang telah dikonversi menjadi format data string akan kita simpan dalam variabel angka_dlm_teks. Sedangkan panjangnya kita taruh dalam variabel panjang_angka. angka_dlm_teks = CStr(angka) panjang_angka = Len(angka_dlm_teks)

Sekarang mari kita uji hasilnya dengan angka 5 , 317, 105076.

Berdasarkan informasi panjang angka tersebut, kita dapat membuat sebuah loop untuk merubah tiap anggota angka menjadi kata dan menggabungkannya kembali. Dalam loop tersebut setiap karakter dalam variabel angka_dlm_teks akan kita ambil meggunakan fungsi Mid(string,awal,jumlah). Kemudian memasukan karakter itu ke dalam variabel index_angka. Variabel ini akan digunakan untuk mengambil data dari anggota array kata_angka yang berasosiasi dengan karakter tersebut. Untuk menggabungkan hasilnya dari setiap kali proses tersebut diulang, maka digunakan operator penggabungan &. For i = 1 To panjang_angka index_angka = Mid(angka_dlm_teks, i, 1) angka_ke_kata = angka_ke_kata & " " & kata_angka(index_angka) Next

Sekarang mari ktia tes fungsi ini dengan angka 1, 720 dan 30827.

Anda mungkin juga menyukai