Anda di halaman 1dari 12

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 hasil-hasilnya. 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