Fungsi adalah salah satu bagian dari suatu rumus atau formula, contohnya fungsi SUM, AVERAGE, atau VLOOKUP dan lebih dari ratusan fungsi lainnya yang ada di dalam Excel.

Pada dasarnya, suatu fungsi dalam Excel menjalankan suatu perhitungan atau penilaian dan kemudian menghasilkan suatu nilai, begitu pula fungsi di dalam pernyataan VBA yang digunakan ternyata memiliki cara kerja yang sama persis.

UDF adalah singkatan dari User-Defined Function yang artinya Anda bisa menulis fungsi Excel Anda sendiri dengan VBA, yang mana wujudnya akan sama seperti fungsi Excel bawaannya, namun dengan kemampuan dan kecerdasan yang lebih.

Terkadang pengguna Excel ingin menjalankan suatu perhitungan atau memperoleh informasi yang tidak dapat diselesaikan dengan fungsi bawaan Excel.

Dengan UDF, Anda bisa membuat fungsi dengan argumen yang Anda tentukan sendiri, dimana Anda bisa menggunakannya sebagai fungsi dalam worksheet atau sebagai bagian dari prosedur macro pada saat suatu tugas sangat sulit bahkan mustahil dicapai dengan rumus dan fungsi bawaan Excel.

UDF hanya akan bekerja pada module standar, jadi jika UDF ditempatkan pada jenis module lain seperti module workbook, worksheet, UserForm, atau class module, maka UDF tidak akan dapat bekerja.

Dalam beberapa kasus, Anda mungkin bisa merekam suatu macro lalu mengubahnya menjadi suatu UDF dengan cara meng-edit kodenya, akan tetapi UDF tetap saja tidak bisa disusun melalui Macro Recorder.

Bagaimana pun cara UDF dihadirkan, ketahui bahwa penghimpunan yang dilakukan UDF lebih lambat dibandingkan dengan fungsi bawaan Excel, jadi gunakan UDF hanya jika fungsi worksheet tidak dapat memenuhi keinginan Anda.

UDF selalu dimulai dengan statement Function dan diakhiri dengan statement End Function, kecuali jika Anda ingin fungsi Anda terlihat hanya pada kode lain dalam module yang sama, maka baiknya menetapkan fungsi sebagai Public, yang mana jangkauan fungsi dengan sendirinya adalah Public.

Jadi pada saat Anda menetapkan UDF sebagai Public, maka UDF akan ditampilkan pada daftar fungsi di dalam kotak dialog Insert Function (tombol fx pada formula bar).

Adapun sintaks umum UDF adalah:

Function namaUDF([daftar argumen]) As jenisdata
'statement VBA yang akan menghasilkan fungsi
[namaUDF = pernyataan yang dihasilkan]
End Function

Nama fungsi harus dimulai dengan suatu huruf dan tidak boleh berisi spasi atau aksara seperti garis miring, titik dua, koma, tanda kurung, atau simbol penghubung lainnya yang tidak diizinkan.

Untuk mempraktikkan contoh UDF sederhana, silakan Anda buka VBE dengan menekan Alt+F11 lalu buat module baru melalui menu Insert > Module lalu ketik:

Function VersiExcel() As String
VersiExcel = Application.Version
End Function

Kembali ke tampilan worksheet dengan menekan Alt+Q, lalu di sel mana saja Anda coba masukkan rumus VersiExcel yang telah Anda susun: =VersiExcel() lalu tekan tombol Enter, maka Excel akan menampilkan versi aplikasi Excel yang sedang Anda gunakan.

Itulah sedikit pengenalan UDF dalam Macro VBA Excel, semoga postingan ini bermanfaat.