Daftar Isi
Kami melanjutkan seri tutorial tentang fungsi yang ditentukan pengguna. Dalam artikel kami sebelumnya, kami berkenalan dengan fungsi kustom dan mempelajari cara membuat dan menggunakannya. Dalam manual ini kita akan melihat secara spesifik penggunaan fungsi-fungsi ini dan melihat perbedaan antara UDF dan makro VBA.
Dalam tutorial ini, kita akan mempelajari hal-hal berikut:
Kami harap artikel ini akan meningkatkan pengetahuan Anda tentang UDF dan membantu Anda menggunakannya dengan lebih efektif di buku kerja Excel Anda.
Apakah UDF dan Makro adalah hal yang sama?
Baik fungsi yang ditentukan pengguna maupun makro VBA dibuat dengan menggunakan editor VBA. Apa perbedaan di antara keduanya dan apa yang harus diutamakan?
Perbedaan yang paling penting adalah bahwa fungsi melakukan perhitungan, dan makro melakukan beberapa tindakan. Fungsi yang ditentukan pengguna, seperti fungsi Excel biasa, harus ditulis dalam sel. Sebagai hasil dari eksekusinya, sel mengembalikan beberapa nilai. Pada saat yang sama, tidak mungkin untuk mengubah nilai sel lain, serta beberapa properti sel saat ini (khususnya,Namun, Anda dapat menggunakan fungsi kustom dalam rumus pemformatan bersyarat.
UDF dan makro VBA bekerja dengan cara yang berbeda. Misalnya, saat Anda membuat UDF di Editor Visual Basic, Anda memulai dengan pernyataan Fungsi dan diakhiri dengan Akhiri Fungsi Ketika Anda merekam makro, Anda memulai dengan pernyataan Sub dan diakhiri dengan Sub Akhir.
Tidak semua operator Visual Basic dapat digunakan untuk membuat UDF. Untuk alasan ini, makro adalah solusi yang lebih serbaguna.
Makro tidak mengharuskan pengguna untuk mengoper argumen apa pun (juga tidak dapat menerima argumen apa pun), tidak seperti fungsi yang ditentukan pengguna.
Intinya adalah bahwa beberapa perintah makro dapat menggunakan alamat sel atau elemen pemformatan (misalnya, warna). Jika Anda memindahkan sel, menambah atau menghapus baris dan kolom, mengubah format sel, maka Anda dapat dengan mudah "mematahkan" makro Anda. Hal ini terutama mungkin terjadi jika Anda berbagi file Anda dengan kolega yang tidak tahu cara kerja makro Anda.
Misalnya, Anda memiliki file dengan makro yang berfungsi dengan sempurna. Rumus ini menghitung persentase sel A1 hingga A4. Makro mengubah warna sel ini menjadi kuning. Format persentase diatur dalam sel aktif.
Jika kamu atau orang lain memutuskan untuk menyisipkan baris baru, makro akan terus mencari nilai di cell A4 (parameter 4,1 di UDFmu), gagal dan mengembalikan error:
Dalam hal ini, kesalahan terjadi karena pembagian dengan nol (tidak ada nilai dalam baris yang baru ditambahkan). Jika makro melakukan, katakanlah, penjumlahan, maka Anda hanya akan mendapatkan hasil yang salah. Tetapi Anda tidak akan mengetahuinya.
Berbeda dengan makro, fungsi yang didefinisikan pengguna tidak dapat menyebabkan situasi yang tidak menyenangkan seperti itu.
Di bawah ini Anda melihat kinerja penghitungan yang sama menggunakan UDF. Di sini Anda dapat menentukan sel masukan di mana saja di lembar kerja dan Anda tidak akan menghadapi masalah tak terduga saat mengubahnya.
Saya menulis rumus berikut dalam C3:
=UDF_vs_Macro(A1,A4)
Kemudian saya menyisipkan baris kosong, dan rumusnya berubah seperti yang Anda lihat pada gambar di atas.
Sekarang kita bisa memindahkan sel input atau sel dengan fungsi ke mana saja. Hasilnya akan selalu benar.
Manfaat tambahan menggunakan UDF adalah bahwa UDF secara otomatis diperbarui ketika nilai dalam sel input berubah. Saat menggunakan makro, Anda harus selalu memastikan bahwa semua data adalah yang terbaru.
Dengan mengingat contoh ini, saya lebih suka menggunakan UDF sedapat mungkin dan menggunakan makro hanya untuk aktivitas non-kalkulasi lainnya.
Keterbatasan dan kerugian menggunakan UDF
Singkat cerita, UDF dapat melakukan perhitungan yang tidak mungkin dilakukan dengan fungsi Excel standar. Selain itu, ini dapat menyimpan dan menggunakan rumus yang panjang dan kompleks, mengubahnya menjadi satu fungsi. Dan Anda tidak perlu menulis rumus rumit berulang kali.
Sekarang, mari kita bicarakan secara lebih rinci mengenai kekurangan UDF:
- Membuat UDF membutuhkan penggunaan VBA. Tidak ada jalan lain. Ini berarti bahwa pengguna tidak dapat merekam UDF dengan cara yang sama seperti makro Excel. Anda harus membuat UDF sendiri. Namun, Anda dapat menyalin dan menempelkan bagian dari kode makro yang direkam sebelumnya ke dalam fungsi Anda. Anda hanya perlu menyadari keterbatasan fungsi kustom.
- Kelemahan lain dari UDF adalah bahwa seperti fungsi Excel lainnya, UDF hanya dapat mengembalikan satu nilai atau larik nilai ke dalam sel. Ini hanya melakukan perhitungan, tidak lebih.
- Jika Anda ingin berbagi buku kerja Anda dengan kolega Anda, pastikan untuk menyimpan UDF Anda dalam file yang sama. Jika tidak, fungsi kustom Anda tidak akan berfungsi untuk mereka.
- Fungsi kustom yang dibuat dengan editor VBA lebih lambat daripada fungsi biasa. Hal ini terutama terlihat pada tabel yang besar. Sayangnya, sejauh ini VBA adalah bahasa pemrograman yang sangat lambat. Oleh karena itu, jika Anda memiliki banyak data, cobalah untuk menggunakan fungsi standar jika memungkinkan, atau buat UDF menggunakan fungsi LAMBDA.
Batasan Fungsi Khusus:
- UDF didesain untuk melakukan kalkulasi dan mengembalikan nilai. UDF tidak bisa digunakan sebagai pengganti makro.
- Mereka tidak dapat mengubah isi sel lain (hanya sel yang aktif).
- Nama fungsi harus mengikuti aturan tertentu. Misalnya, Anda tidak bisa menggunakan nama yang cocok dengan nama fungsi Excel asli atau alamat sel, seperti AB123.
- Fungsi kustom Anda tidak boleh mengandung spasi dalam nama, tetapi bisa menyertakan karakter garis bawah. Namun, metode yang lebih disukai adalah menggunakan huruf kapital di awal setiap kata baru (misalnya, GetMaxBetween).
- UDF tidak dapat menyalin dan menempelkan sel ke area lain di lembar kerja.
- Mereka tidak bisa mengubah lembar kerja yang aktif.
- UDF tidak dapat mengubah pemformatan di sel aktif. Jika Anda ingin mengubah pemformatan sel saat menampilkan nilai yang berbeda, Anda harus menggunakan pemformatan bersyarat.
- Mereka tidak bisa membuka buku tambahan.
- Mereka tidak dapat digunakan untuk menjalankan makro menggunakan Application.OnTime.
- Fungsi yang ditentukan pengguna tidak dapat dibuat dengan menggunakan perekam makro.
- Fungsi tidak muncul dalam Pengembang> Makro dialog.
- Fungsi-fungsi Anda akan muncul dalam kotak dialog ( Sisipkan> Fungsi ) dan dalam daftar fungsi hanya jika mereka dideklarasikan sebagai Publik (ini adalah default, kecuali disebutkan lain).
- Setiap fungsi yang dideklarasikan sebagai Pribadi tidak akan muncul dalam daftar fitur.
Pengoperasian yang cukup lambat, serta beberapa pembatasan dalam penggunaan, mungkin membuat Anda berpikir: "Apa gunanya fungsi-fungsi kustom ini?"
Mereka bisa berguna, dan memang demikian jika kita memperhatikan batasan-batasan yang diberlakukan pada mereka. Jika Anda mempelajari cara membuat dan menggunakan UDF dengan benar, Anda dapat menulis pustaka fungsi Anda. Ini akan sangat memperluas kemampuan Anda untuk bekerja dengan data di Excel.
Bagaimana dengan Anda? Apakah Anda sudah mencoba membuat UDF Anda sendiri? Apakah Anda menyukainya lebih baik daripada fungsi dasar Excel? Mari kita bahas di Komentar :)