Fungsi yang Ditentukan Pengguna di VBA - Bagaimana cara membuat UDF? (Contoh)

Fungsi yang Ditentukan Pengguna (UDF) Excel VBA

Microsoft melayani kami dengan banyak fungsi bawaan untuk mempercepat pekerjaan di excel. Bagaimanapun menggunakan pengkodean VBA kita dapat membuat fungsi kita sendiri dan fungsi tersebut secara teknis disebut “Fungsi yang Ditentukan Pengguna” (UDF). Mereka juga disebut sebagai "fungsi kustom" di excel VBA.

Rumus apa pun yang dapat diakses dari lembar kerja dengan sepotong kode disebut UDF. Secara sederhana, rumus apa pun yang tidak bawaan tetapi tersedia di Excel disebut Fungsi yang Ditentukan Pengguna.

Bagaimana Cara Membuat Fungsi Buatan Pengguna?

Meskipun UDF adalah bagian dari modul kami, mereka bukan bagian dari Subrutin reguler kami di VBA. Ini disebut Prosedur Fungsi di VBA. Seperti bagaimana kita memulai pengkodean makro dengan kata SUB dengan cara yang sama, kita perlu memulainya dengan menggunakan kata "Fungsi". Prosedur Sub memiliki Awal dan Akhir, demikian pula Prosedur Fungsi memiliki Awal dan Akhir.

Contoh # 1 - Buat Fungsi Jumlah UDF Sederhana

Kami akan membuat fungsi SUM kami sendiri di excel dengan menambahkan dua angka.

  • Untuk memulai pengkodean, mulailah kata "Fungsi" di salah satu modul.
  • Seperti bagaimana kita memberi nama makro dengan cara yang sama, kita perlu memberi nama pada Fungsi kita juga. Nama ini digunakan sebagai nama formula.

Tidak seperti subrutin, kita tidak bisa begitu saja menekan enter untuk membuat prosedur, tapi kita perlu menyebutkan argumen di sini.

Misalnya, lihat sintaks di bawah ini dari fungsi lembar kerja SUM.

Nomor 1, Nomor 2 adalah argumen dari fungsi SUM.

  • Demikian pula, kami perlu menyebutkan argumen kami.

Di sini saya telah mendeklarasikan argumen sebagai "x sebagai Integer" dan "y sebagai Integer." Karena kita menambahkan nilai numerik, kita perlu menetapkan tipe data sebagai tipe data numerik saja.

Setelah mendeklarasikan argumen, saya telah menetapkan tipe kembalian dari Integer juga karena hasil yang diberikan oleh Fungsi "OurSum" juga merupakan nilai numerik.

  • Sekarang di dalam fungsinya, kita perlu menyebutkan rumus yang akan kita gunakan. Di sini kita perlu menggunakan fungsi tersebut untuk memulai.

Kami menyebutkan nama rumus " OurSum " harus menambahkan x dan y.

  • Ok, simpan kodenya dan pergi ke lembar kerja.
  • Saya telah memasukkan beberapa angka di sini. Buka tanda sama dengan dan mulailah mengetik OurSum. Anda dapat melihat nama rumus muncul di sini.
  • Seperti bagaimana kita memilih sel dengan cara yang sama memilih dua sel secara terpisah.
  • Setelah memilih dua sel, tekan tombol enter untuk mendapatkan hasil.

Jadi ini bekerja persis sama dengan fungsi SUM reguler kami.

  • Oke, sekarang saya akan mengubah angkanya.
  • Sekarang lagi, saya akan menerapkan fungsi yang telah kita buat.

Oh !!! Kami mendapat nilai kesalahan kecuali untuk sel pertama.

Anda pasti memikirkan mengapa kami mendapat kesalahan.

Jika Anda mengamati sel A2 dan B2, kami memiliki nilai 48170 dan 21732. Karena kami telah menetapkan tipe data sebagai Integer, itu tidak dapat menampung lebih dari 32767. Inilah alasan kami mendapatkan kesalahan excel sebagai #NUM !.

Sekarang saya akan menambahkan angka yang kurang dari 32767.

Pada gambar di atas, semua angka adalah angka integer, yaitu kurang dari 32767.

Di sel pertama, kami mendapatkan hasilnya. Namun di sel kedua, yaitu sel C2, kami mendapatkan nilai kesalahan sebagai #VALUE !.

Meskipun kedua angkanya kurang dari 32767, kami masih mendapatkan error.

Ini karena kami telah mendeklarasikan hasil akhirnya juga sebagai Integer.

Jadi ketika kita menambahkan 16000 dan 17229, kita akan mendapatkan nilai seperti 33229, yang lebih dari batas tipe data integer 32767. Jadi hasil akhirnya adalah nilai kesalahan.

Contoh # 2 - Buat Fungsi untuk Menguji Nilai Logis

Kami akan membuat satu fungsi lagi untuk menguji nilai logis. Kita membutuhkan fungsi yang mengembalikan "Baik" jika angkanya> = 60, dan kita membutuhkan hasil sebagai "Buruk" jika angkanya <= 50.

Langkah 1: Mulai Prosedur Fungsi dan beri nama untuk prosedur tersebut.

Langkah 2: Berikan argumen sebagai TestScore as Integer.

Langkah 3: Hasil akhir kita harus "Baik" atau "Buruk", jadi hasilnya harus dalam String.

Langkah 4: Pertama, kita perlu menguji apakah nilainya> = 60 atau tidak. Gunakan kondisi IF untuk menguji.

Langkah 5: Jika skor tes> = 60, kita memerlukan fungsi untuk mengembalikan hasil sebagai "Baik". Jadi TestResult = “Bagus.”

Langkah 6: Jika skor tes kurang dari 60, maka hasil fungsinya harus "Buruk".

Ok, kita sudah selesai.

  • Simpan kode dan pergi ke lembar kerja.

Saya telah memasukkan beberapa angka di sini sebagai nilai ujian.

  • Terapkan fungsi yang telah kita buat untuk mendapatkan hasil.
  • Pilih sel dan tekan enter.

Inilah UDF.

Artikel yang menarik...