Fungsi VBA - Panduan untuk Membuat Fungsi Kustom menggunakan VBA

Daftar Isi

Fungsi VBA Excel

Kita telah melihat bahwa kita dapat menggunakan fungsi lembar kerja di VBA, yaitu fungsi lembar kerja excel dalam pengkodean VBA menggunakan metode application.worksheet, tetapi bagaimana kita menggunakan fungsi VBA di excel, nah fungsi tersebut disebut fungsi yang ditentukan pengguna, ketika pengguna membuat fungsi di VBA, itu juga bisa digunakan di lembar kerja excel.

Meskipun kami memiliki banyak fungsi di excel untuk memanipulasi data, terkadang kami perlu memiliki beberapa penyesuaian pada alat agar kami dapat menghemat waktu karena kami melakukan beberapa tugas berulang kali. Kami memiliki fungsi yang telah ditentukan di excel seperti SUM, COUNTIF, SUMIF, COUNTIFS, VLOOKUP, INDEX, MATCH di excel, dll. Tetapi kami melakukan beberapa tugas setiap hari di mana satu perintah atau fungsi tidak tersedia di Excel, lalu dengan menggunakan VBA, kita dapat membuat fungsi kustom yang disebut Fungsi yang Ditentukan Pengguna (UDF).

Apa fungsi VBA Functions?

  • Mereka melakukan perhitungan tertentu; dan
  • Kembalikan nilai

Di VBA, saat mendefinisikan fungsi, kami menggunakan sintaks berikut untuk menentukan parameter dan tipe datanya.

Tipe data di sini adalah tipe data yang akan disimpan variabel. Itu dapat menyimpan nilai apa pun (tipe data atau objek apa pun dari kelas apa pun).

Kita dapat menghubungkan objek dengan properti atau metodenya dengan menggunakan simbol titik atau titik (.).

Bagaimana Cara Membuat Fungsi Kustom menggunakan VBA?

Contoh

Misalkan kita memiliki data berikut dari sekolah di mana kita perlu mencari nilai total yang dicetak oleh siswa, hasil, dan nilai.

Untuk meringkas nilai yang diberikan oleh seorang siswa dalam semua mata pelajaran, kami memiliki fungsi bawaan, yaitu SUM, tetapi untuk mengetahui nilai dan hasil berdasarkan kriteria yang ditetapkan oleh sekolah tidak tersedia di Excel secara default .

Inilah alasan mengapa kita perlu membuat fungsi yang ditentukan pengguna.

Langkah 1: Temukan Total Marks

Pertama, kita akan menemukan nilai total menggunakan fungsi SUM di excel.

Tekan Enter untuk mendapatkan hasilnya.

Seret Rumus ke sel lainnya.

Sekarang untuk mengetahui Hasilnya (Lulus, Gagal, atau Pengulangan Penting), kriteria yang ditetapkan oleh sekolah adalah itu.

  • Jika siswa telah mendapat nilai lebih dari atau sama dengan 200 sebagai nilai total dari 500 dan siswa tersebut juga tidak gagal dalam mata pelajaran apa pun (memiliki nilai lebih dari 32 di setiap mata pelajaran), maka seorang siswa dinyatakan lulus,
  • Jika siswa telah mendapat nilai lebih dari atau sama dengan 200, tetapi siswa tersebut gagal dalam 1 atau 2 mata pelajaran, maka siswa telah mendapatkan "Pengulangan Penting" dalam mata pelajaran tersebut,
  • Jika siswa telah mendapat nilai kurang dari 200 atau gagal dalam 3 mata pelajaran atau lebih, maka siswa tersebut gagal.
Langkah 2: Buat Fungsi ResultOfStudent

Untuk membuat fungsi bernama 'ResultOfStudent', kita perlu membuka "Visual Basic Editor" dengan menggunakan salah satu metode di bawah ini:

  • Dengan menggunakan tab Pengembang excel.

Jika tab Pengembang tidak tersedia di MS Excel, maka kita bisa mendapatkannya dengan menggunakan langkah-langkah berikut:

  • Klik kanan di mana saja pada pita lalu, Pilih Sesuaikan Pita di excel ' .

Ketika kita memilih perintah ini, kotak dialog "Opsi Excel" terbuka.

  • Kita perlu mencentang kotak untuk "Pengembang" untuk mendapatkan tab tersebut.
  • Dengan menggunakan tombol shortcut, yakni Alt + F11.
  • Saat membuka editor VBA, kita perlu memasukkan modul dengan masuk ke menu Sisipkan dan memilih modul.
  • Kita perlu menempelkan kode berikut ke dalam modul.
Fungsi ResultOfStudents (Marks As Range) Sebagai String Dim mycell Sebagai Range Dim Total Sebagai Integer Dim CountOfFailedSubject Sebagai Integer Untuk Setiap mycell Dalam Tanda Total = Total + mycell.Value Jika mycell.Value = 200 Dan CountOfFailedSubject 0 Kemudian ResultOfStudents = "Essential Repeat" ElseIf Total> = 200 Dan CountOfFailedSubject = 0 Kemudian ResultOfStudents = "Lulus" Lain ResultOfStudents = "Gagal" Akhiri Jika Akhiri Fungsi

Fungsi di atas mengembalikan hasil untuk seorang siswa.

Kami perlu memahami bagaimana kode ini bekerja.

Pernyataan pertama, 'Function ResultOfStudents (Marks As Range) As String,' mendeklarasikan fungsi bernama 'ResultOfStudents' yang akan menerima rentang sebagai masukan untuk tanda dan akan mengembalikan hasilnya sebagai string.

Dim mycell As Range Dim Total As Integer Dim CountOfFailedSubject As Integer

These three statements declare variables, i.e.,

  • ‘myCell’ as a Range,
  • ‘Total’ as Integer (to store total marks scored by a student),
  • ‘CountOfFailedSubject’ as integer (to store the number of subjects in which a student has failed).
For Each mycell In Marks Total = Total + mycell.Value If mycell.Value < 33 Then CountOfFailedSubject = CountOfFailedSubject + 1 End If Next mycell

This code checks for every cell in the ‘Marks’ range and adds the value of every cell in the ‘Total’ variable, and if the value of the cell is less than 33, then adds 1 to the ‘CountOfFailedSubject’ variable.

If Total>= 200 And CountOfFailedSubject 0 Then ResultOfStudents = "Essential Repeat" ElseIf Total>= 200 And CountOfFailedSubject = 0 Then ResultOfStudents = "Passed" Else ResultOfStudents = "Failed" End If

This code checks the value of ‘Total’ and ‘CountOfFailedSubject’ and passes the Essential Report,’ ‘Passed,’ or ‘Failed’ accordingly to the ‘ResultOfStudents.’

Step 3: Apply ResultOfStudents Function to Get Result

ResultOfStudents function takes marks, i.e., selection of 5 marks scored by the student.

Now Select the Range of cells, i.e., B2: F2.

Drag the Formula to the rest of the Cells.

Step 4: Create ‘GradeForStudent’ Function to get Grades

Now to find out the grade for the student, we will create one more function named ‘GradeForStudent.’

The code would be:

Function GradeForStudent(TotalMarks As Integer, Result As String) As String If TotalMarks> 440 And TotalMarks 380 And TotalMarks 320 And TotalMarks 260 And TotalMarks = 200 And TotalMarks <= 260 And (Result = "Passed" Or Result = "Essential Repeat") Then GradeForStudent = "E" ElseIf TotalMarks < 200 Or Result = "Failed" Then GradeForStudent = "F" End If End Function

This function assigns a ‘Grade’ to the student based on the ‘Total Marks’ and ‘Result.’

We just need to write the formula and open the brackets in Cell H2 and pressing Ctrl+Shift+A to find out about the arguments.

Fungsi GradeForStudent menggunakan nilai Total (jumlah nilai) dan hasil siswa sebagai argumen untuk menghitung nilai.

Sekarang Pilih sel masing-masing, yaitu G2, H2.

Sekarang kita hanya perlu menekan Ctrl + D setelah memilih sel untuk menyalin rumus.

Nilai kurang dari 33 dapat kita highlight dengan warna background merah sehingga kita dapat mengetahui mata pelajaran yang mana siswa tersebut gagal.

Artikel yang menarik...