Setelah memahami bagaimana membuat function procedure pada VBA Excel, tentunya kita juga harus tahu bagaimana cara menjalankan, memangggil atau mengeksekusi prosedur fungsi yang telah dibuat.
Sebelumnya kita juga sudah mempelajari 9 cara menjalankan sub procedure, apakah untuk function procedure caranya juga sama?
Sayangnya cara untuk menggunakan function procedure sedikit terbatas. Secara umum anda dapat menggunakan 3 alternatif cara berikut untuk menjalankan atau memanggil sebuah function procedure:
- Memanggil funtion procedure dari procedure lain.
- Menjalankan function procedure dari Immediate Window.
- Menggunakan function procedure sebagai rumus excel.
Pada seri panduan Excel VBA Dasar kali ini kita akan membahas ketiga cara tersebut.
Sebelum melanjutkan pembahasan tentang cara menggunakan prosedur fungsi pada VBA Excel ini, silahkan anda buat dulu sebuah standart module baru kemudian buatlah sebuah function procedure seperti berikut pada modul tersebut.
Function DISKON(jumlah As Long, harga As Currency, Optional persen As Double = 0.05)
'Deklarasi variabel jmlDiskon
Dim jmlDiskon As Currency
'Menghitung jumlah diskon
jmlDiskon = jumlah * harga * persen
'Assign return value diskon kepada fungsi DISKON
DISKON = jmlDiskon
End Function
Anggap saja UDF atau custom function di atas digunakan untuk menghitung diskon penjualan barang dengan menggunakan 3 parameter atau argumen:
- jumlah: menunjukkan jumlah barang yang terjual.
- harga: menunjukkan harga satuan barang yang dijual.
- persen: menunjukkan besaran diskon yang mana nilai defaultnya adalah 0,05 atau 5%.
Umumnya untuk mendapatkan diskon ada kriteria tertentu yang harus terpenuhi, namun agar lebih sederhana diskon penjulana disini kita hitung tanpa kriteria apapun.
Jika sudah dibuat mari kita lanjutkan pada pembahasan cara menggunakan function procedure tersebut.
Cara Memanggil Function Procedure Dari Procedure Yang Lainnya
Cara pertama yang bisa kita gunakan untuk memanggil atau menjalankan function procedure adalah dengan memanggilnya dari procedure lain.
Cara yang umum digunakan yakni dengan menuliskan baris kode yang berisi nama fungsi beserta nilai-nilai argumennya. Misalnya berikut ini:
Sub munculkanDiskon()
MsgBox DISKON(10, 1500, 0.25)
End Sub
Jika anda menjalankan prosedure diatas hasilnya adalah kotak pesan berikut:
Angka 3750 pada kotak pesan tersebut didapatkan dari hasil kalkulasi oleh fungsi DISKON (10*1500*25%).
Cara lain adalah dengan menggunakan Application.Run method seperti berikut ini:
Sub tampilkanDiskon()
MsgBox Application.Run("DISKON", 10, 1500, 0.25)
End Sub
Prosedure di atas akan menghasilkan kotak pesan yang sama seperti sebelumnya.
Cara Menjalankan Function Procedure Dari Immediate Window
Cara lain untuk menjalankan sebuah function procedure adalah dengan memanggilnya dari Immediate Window. Sebelum bisa menggunakannya tentunya anda harus menampilkan dulu Immediate Window yang sudah kita bahas pada seri sebelumnya.
Metode ini biasanya digunakan untuk melakukan debug kode VBA, dengan kata lain untuk memeriksa atau menguji apakah kode VBA yang kita buat sudah sesuai keinginan atau ada error tertentu.
Cara yang biasa digunakan adalah dengan menggunakan printah "Print" kemudian diikuti nama fungsi dan argumennya kemudian tekan Enter seperti berikut ini:
Anda juga bisa menggantikan perintah "Print" dengan tanda tanya (?) seperti ini:
Nah, mudah bukan?
Cara Menggunakan Function Procedure Sebagai Rumus Excel
Pada pembahasan tentang function procedure, disebutkan bahwa function procedure juga lazim disebut sebagai Custom function dan juga sebagai User Defined Funtion (UDF).
Hal ini lebih di sebabkan karena function procedure bisa kita perlakukan layaknya fungsi bawaan excel semisal fungsi SUM, AVERAGE, VLOOKUP, dan lain sebagainya.
Jadi kita juga bisa menggunakan function procedure sebagai sebuah rumus excel bahkan dapat juga digunakan pada conditional formatting.
Cara menggunakannya juga seperti saat anda menggunakan fungsi default excel, yakni dengan mengetikkan tanda sama dengan (=) kemudian diikuti dengan nama fungsi, lengkap dengan argumen-argumentnya.
Berikut contohnya:
=DISKON(10; 1500; 0,25)
Cara di atas berlaku jika function procedure yang anda buat anda gunakan pada file yang sama.
Fungsi DISKON diatas, jika anda gunakan untuk file yang lain akan menghasilkan error #NAME? seperti ini:
Jika bermaksud menggunakannya pada workbook yang berbeda maka ikut sertakan juga nama file yang menyimpan function procedure DISKON seperti ini.
='Kelas Excel-Latihan VBA 6.xlsm'!DISKON(10; 1500; 0,25)
Cara seperti diatas berlaku jika file "Kelas Excel-Latihan VBA 6.xlsm" dalam kondisi open(terbuka).
Jika tidak ingin menggunakan nama file anda dapat juga menetapkan referensi pada file/workbook excel yang menyimpan fungsi DISKON tersebut yang bisa anda atur pada Menu Tools VBE.
Masih ada pertanyaan? Silahkan sampaikan pada kolom komentar yang tersedia.