Function Procedure Pada Vba Excel #08 | Kelas Excel
Tutorial lengkap tentang Function Procedure pada VBA Excel yang juga disebut selaku Custom Function atau User Defined Funtion (UDF). Juga menerangkan penggunaan tentang keyword ByRef dan ByVal pada argument procedure VBA.

Salah satu halaman yang paling banyak dikunjungi di web tutorial excel ini yakni halaman tentang addin terbilang excel. Sebuah addin yang menyediakan fungsi embel-embel untuk merubah angka menjadi teks terbilang. Namun , tahukah anda bahwa addin tersebut sebenarnya di buat dengan function procedure?
Apa itu function procedure?
Setelah membahas tentang Sub Procedure dan bagaimana cara memanggilnya , seri tutorial VBA Excel kali ini akan mengajak anda untuk mempelajari dan mengerti bagaimana menciptakan suatu function procedure atau mekanisme fungsi pada VBA Excel.
Pengertian Funcitin Procedure
Dalam pembahasan Macro VBA Excel , Procedure yakni suatu blok arahan kesibukan yang berisi baris-baris perintah tertentu di antara baris statement pembuka dan statement epilog prosedure. Lebih jelasnya sanggup anda baca pada seri berikut: Module dan Procedure VBA Excel.
Function procedure pada VBA Excel yakni salah satu jenis procedure yang ditandai dengan statement pembuka "Function" dan diakhiri dengan Statement "End Function".
Dalam proses kerjanya function procedure bekerjsama sama dengan Sub Procedure yang sudah kita diskusikan sebelumnya. Perbedaan utama dari kedua jenis procedure ini yakni bahwa Function Prosedur sanggup menciptakan suatu nilai balik (return value) dari proses kerjanya yang tersimpan didalam nama prosedurnya.
Cara kerja suatu function procedure memang sungguh seumpama dengan fungsi-fungsi bawaan excel seumpama fungsi SUM , fungsi AVERAGE , fungsi MIN-MAX dan lain sebagainya , dimana kita sanggup memasukkan argumen-argumen tertentu ke dalam suatu procedur function , kemudian fungsi tersebut menjalankan kalkulasi kemudian mengembalikan suatu hasil dari kalkulasi tersebut.
Prosedur fungsi yang dideklarasikan dengan keyword Public sanggup dipakai selaku rumus excel pada suatu cell excel seumpama fungsi bawaan Excel. Sebab itu mekanisme function juga disebut selaku Custom Function serta User Defined Funtion (UDF).
Dan untuk argumentasi yang serupa , di blog ini saya lebih condong menyebut default worksheet function selaku suatu fungsi dan bukan rumus excel. Hal ini pernah saya singung pada pembahasan tentang Pengenalan rumus dan fungsi pada Microsoft Excel.
Cara Membuat Function Procedure
Barangkali anda mengajukan pertanyaan bagaimana menciptakan fungsi atau rumus sendiri di excel?
Jika fungsi-fungsi default atau fungsi bawaan yang excel sediakan belum memadai , anda sanggup menciptakan suatu fungsi excel sendiri. Caranya yakni menciptakan suatu custom function atau user defined function (UDF) dengan menciptakan suatu public function lewat VBA Excel.
Sintax atau cara menciptakan function procedure pada suatu modul VBA yakni sebagi berikut:
[Private|Public|Friend][Static] Function Nama_Fungsi ([List_Argumen]) As [Return_Data_Type][Instruksi/Kode Program][Exit Function][Instruksi/Kode Program][Nama_Fungsi = Return_Value]End Function
Setiap komponen yang ada di dalam kurung siku "[...]" pada sintax mekanisme function di atas bersifat opsional , artinya boleh dipakai dan boleh diabaikan atau tidak digunakan.
Contoh sederhana suatu function procedure yakni selaku berikut:
Function luasPersegi(panjang As Integer) As LongDim luas As Longluas = panjang * panjangluasPersegi = luasEnd Function
Elemen [Private|Public|Friend][Static]
Karena sudah beberapa diterangkan pada beberapa seri sebelumnya element ini tidak akan saya diskusikan lagi. Untuk mempelajari tujuannya silahkan baca materi-materi seri macro VBA Excel sebelumnya.
Elemen "Function"
Teks atau element "Function" ini wajib anda pakai kalau anda berencana menciptakan suatu Function procedure.
Elemen inilah membedakan penyusunan mekanisme function dengan jenis procedure lainnya.
Elemen "Nama_Prosedur"
Bagian ini memperlihatkan nama mekanisme function yang anda buat dan mesti anda gunakan. Nama Fungsi inilah yang hendak dipakai untuk mengundang atau dipakai pada worksheet. Makara namailah function procedure yang anda buat sebijak mungkin. Idealnya silahkan menjiplak bagiamana office excel menamai fungsi-fungsi default yang sudah tersedia.
Seperti yang sudah diterangkan pada pembahasan tentang procedure VBA , nama fungsi ini juga mengikuti beberapa hukum berikut:
- Karakter pertama mesti berupa Letter Abjad (A-Z ,a-z).
- Karakter selanjutnya sanggup berupa abjad , angka atau karakter tanda baca tertentu (tidak semua tanda baca sanggup digunakan).
- Tidak boleh memakai titik (.) Dan spasi ( ) juga tidak sanggup memakai karakter berikut: # , $ ,% , & , @ , ^ , * dan !.
- Tidak ada perbedaan antara abjad besar dan abjad kecil.
- Jumlah maksimum karakter yang sanggup dipakai yakni 255.
Elemen [List_Argumen]
Bagian ini memperlihatkan list atau daftar variabel yang mewakili argumen yang dipakai pada mekanisme function dikala diundang atau digunakan.
Tentang List Argument Fungsi ini akan dibahas tersendiri di cuilan bawah nanti.
Wah , kenapa tidak kini saja bang? Suka-suka saya donk ekekekeke....
Elemen "As [Return_Data_Type]"
Element ini di isi dengan tipe data VBA di awali dengan keyword "As" seumpama dikala mendeklarasikan suatu variabel.
Bagian ini memperlihatkan tipe data yang hendak dihasilkan oleh fungsi yang kita buat. Penulisannya misalnya: As Integer , As Long , As String , dan lain sebagainya.
Jenis atau tipe data apa saja yang sanggup digunakan? Silahkan baca pada seri berikut: Tipe Data Pada VBA Excel
Elemen [Instruksi/Kode Program]
Instruksi/Kode Program ialah baris-baris arahan perintah yang hendak ditangani oleh Function procedure dikala dijalankan atau dipanggil.
Isinya pastinya menyesuaikan keperluan atau kehendak anda yang pada pada dasarnya yakni proses kalkulasi tertentu oleh prosedure terkait dikala dipanggil.
Elemen [Exit Function]
Idealnya suatu baris arahan akan rampung dikala meraih "End Function". Namun , dalam keadaan tertentu anda sanggup keluar dari function procedure dengan memakai perintah "Exit Function".
Baris arahan "Exit Function" ialah perintah untuk keluar dari Function Procedure terkait. "Exit Function" membuktikan bahwa mekanisme function mesti di akhiri dan tidak dilanjutkan ke baris-baris kesibukan selanjutnya.
Elemen "Nama_Fungsi = Return_Value"
Di atas sudah diterangkan bahwa suatu mekanisme function sanggup menciptakan suatu nilai balik (Return Value) dari proses kerjanya.
Lalu bagaimana kita menginformasikan return value ini terhadap suatu function procedure?
Untuk menginformasikan suatu function procedure nilai apa yang mesti di kembalikan atau dihasilkan , caranya yakni dengan menegaskan nilai tersebut terhadap nama fungsinya.
Penulisan baris kodenya yakni dengan menuliskan nama fungsi disertai dengan sama dengan (=) dan nilai yang ingin dihasilkan atau dikembalikan.
Perhatikan lagi pola function procedure berikut:
Function luasPersegi(panjang As Integer) As Long'Deklarasi variabel luasDim luas As Long'Menghitung luas persegi sesuai argumen panjang yang diberikanluas = panjang * panjang'Assign return value terhadap fungsi luasPersegiluasPersegi = luasEnd Function
Pada pola di atas baris arahan "luasPersegi = luas" mengumumkan terhadap fungsi luasPersegi bahwa nilai yang mesti dihasilkan olehnya yakni nilai dari variabel luas yang ditemukan dari hasil perkalian argumen panjang * panjang.
Jadi pada kasus ini nama fungsi juga melakukan pekerjaan selaku suatu variabel.
Biasanya baris arahan yang mengumumkan nilai yang mesti dikembalikan oleh fungsi seperti ini dituliskan pada cuilan selesai fungsi sebelum "End Function" atau "Exit Function".
Sebagai catatan embel-embel bahwa fungsi luasPersegi di atas sanggup juga anda ringkas menjadi berikut:
Function luasPersegi(panjang As Integer) As Long'Menghitung luas sekaligus Assign return value terhadap fungsi luasPersegiluasPersegi = panjang * panjangEnd Function
Elemen "End Function"
Bagian ini menandai selesai suatu Function Procedure.
Saat anda menekan Enter untuk mengakhiri penulisan deklarasi pembuka dikala menciptakan suatu procedure gres lazimnya Statement epilog mekanisme function ini akan otomatis dibentuk pada VBE (Visual Basic Editor).
Argument Pada Function Procedure
Saya percaya anda sudah sungguh familiar dengan perumpamaan argument pada suatu fungsi excel.
Secara biasa argument ini memang lebih sering dipakai pada function procedure , walaupun demikian pada dasarnya list argument ini sanggup juga anda pakai pada prosedur jenis Sub (Subroutine) yang sudah kita diskusikan pada seri sebelumnya.
Penulisan daftar argument berada diantara tanda kurung (...) sehabis nama prosedur. Cara penulisannya seumpama dengan deklarasi variabel pada Macro VBA Excel , tetapi tanpa menambahkan scope.
Penulisan argument di awali dengan nama argument kemudian disertai dengan tipe datanya dan sanggup juga disertai keyword lain seumpama ByVal atau ByRef serta statement Optional , sedangkan pada deklarasi variabel tidak ada.
Jika terdapat lebih dari satu argument maka penulisannya dipisahkan dengan tanda koma( ,).
Perhatikan pola mekanisme fungsi dengan nama DISKON berikut ini:
Function DISKON(jumlah As Long , harga As Currency , Optional persen As Double = 0.01)DISKON = jumlah * harga * persenEnd Function
Function Procedure dengan nama DISKON diatas memakai 3 argumen yang masing-masing adalah: jumlah , harga dan persen.
Argument Procedure
Saat suatu procedure disertai argument , maka untuk mengundang mekanisme tersebut juga mesti menyediakan nilai input terhadap argument-argumentnya. Misal untuk memakai fungsi DISKON di atas pada suatu sel selaku suatu rumus excel anda sanggup menuliskan rumus berikut untuk menggunakannya:
=DISKON(5;10000;0 ,1)
Nilai angka 5 yakni jumlah , 10000 yakni harga dan 0 ,1 yang senilai dengan 10% yakni untuk argumen persen.
Rumus ini berlaku kalau anda memakai setting regional Indonesia yang memakai titik koma(;) selaku pemisah argument dan koma( ,) selaku pemisah desimal.
Apabila anda memakai setting region default yang lazimnya masih Engish maka rumus pada sel excel yang anda pakai yakni selaku berikut:
=DISKON(5 ,10000 ,0.1)
Keyword Optional
Seperti pada fungsi-fungsi bawaan excel , anda sanggup juga menciptakan argumen selaku argumen opsional yang dikala diundang tidak mesti diisi nilainya. Untuk mengendalikan argument opsional tambahkan keyword "Optional" sebelum nama argument.
Argument opsional ini sanggup juga anda menegaskan nilai defaultnya dikala mekanisme pemanggil tidak menyertakannya. Pada pola fungsi DISKON diatas , argument opsional yakni persen dengan nilai default 0.01 (1%).
Optional persen As Double = 0.01
Nilai default 0.01 ini akan diabaikan kalau dikala mengundang fungsi DISKON anda menambahkan nilai persennya seumpama pola sebelumnya. Jika tidak diisi maka nilai default inilah yang hendak dipakai.
Pada sel excel anda sanggup mengundang fungsi DISKON dengan cara seumpama ini:
=DISKON(5;10000)
Rumus excel diatas akan menciptakan angka 500 yang ditemukan dari perkiraan 5*10000 dan dikalikan 0 ,01 atau 1% selaku nilai default persen lantaran anda tidak menambahkan nilai persen dikala pemanggilan fungsi DISKON.
Keyword ByVal dan ByRef
Pada penyusunan argument mekanisme baik jenis function atau Sub anda sanggup juga menambahkan keyword ByVal atau ByRef.
Keyword ByRef ialah keyword default , sehingga pada penyusunan argument fungsi DISKON diatas anda sanggup juga menuliskannya dengan cara seumpama ini:
Function DISKON(ByRef jumlah As Long , ByRef harga As Currency , Optional ByRef persen As Double = 0.01)DISKON = jumlah * harga * persenEnd Function
Apa maksud dari penggunaan keyword ByRef dan ByVal ?
Keyword ByVal dan ByRef pada dasarnya memperlihatkan bagaimana suatu nilai argument yang diberikan oleh pemanggil akan dipakai oleh mekanisme yang dipanggil. Apakah nilai argument yang dilewatkan diambil nilainya (Value) saja atau diperlakukan selaku suatu rujukan (Reference).
- Keyword ByRef: Mengirimkan lokasi memori suatu nilai yang diberikan kedalam suatu argumen. Argumen akan diisi dengan wujud data tersebut secara eksklusif , oleh lantaran itu nilai variabel sanggup diubah di dalam mekanisme sub atau fungsi.
- Keyword ByVal: Argumen akan diisi dengan salinan nilai data saja , dengan kata lain ByVal mengantarkan suatu nilai yang diberikan kedalam suatu argumen dan kemudian argumen menyalin nilai tersebut untuk dimanfaatkan. Prosedur berargumen cuma akan merubah salinan nilai dan nilai orisinil tidak akan berganti sama sekali
Saya kekurangan kata-kata untuk menerangkan tentang ByRef dan ByVal ini. Untuk lebih jelasnya kita praktekkan saja.
Silahkan buat mekanisme sub dan fungsi berikut pada suatu Standart modul:
Option ExplicitFunction VOLUMEKUBUS(ByRef panjang As Long) As Longpanjang = panjang ^ 3VOLUMEKUBUS = panjangEnd FunctionSub tesVolume()Dim panjang As Longpanjang = 10'Panggil fungsi VOLUMEKUBUS dan munculkan nilai hasil pada suatu Mesage BoxMsgBox "Volume Kubus = " & VOLUMEKUBUS(panjang)'Munculkan nilai variabel panjang pada suatu Mesage BoxMsgBox "Variabel Panjang = " & panjangEnd Sub
Jika sudah coba laksanakan mekanisme tesVolume. Hasilnya yakni 2 message box berikut:
Perhatikan nilai angka yang dimunculkan pada 2 message box tersebut. Message box pertama ialah hasil dari fungsi VOLUMEKUBUS , sedangkan yang kedua yakni nilai dari variabel panjang.


Selanjutnya ubah keyword ByRef dengan ByVal pada argument panjang , kemudian laksanakan lagi mekanisme tesVolume. Hasilnya yakni 2 message box berikut:


Perhatikan perbedaan pada message box ke-2 pada dua latihan di atas.
Ketika melupakan argumen dengan rujukan (ByRef) , kita mengacu pada nilai asli. Nilai panjang diubah dalam fungsi (panjang = panjang ^ 3). Kemudian variabel panjang ini diundang lagi lewat message box ke-2(MsgBox panjang). Sebagai kesudahannya , MsgBox kedua memperlihatkan nilai 1000.
Saat mengantarkan argumen menurut nilai (ByVal) , kita mengantarkan salinan nilai ke fungsi (VOLUMEKUBUS(10)). Nilai panjang orisinil tidak berubah. Akibatnya , MsgBox kedua memperlihatkan nilai 10 (nilai asli).
Anda tambah bingung? Jika anda menerima halaman ini secara tidak sengaja saya sarankan membaca beberapa seri bimbingan macro VBA Excel sebelumnya sehingga anda akan mendapat konteks pengertian yang lebih lengkap.
Berikut file latihan yang saya gunakan pada tutorial kita kali ini.
LINK DOWNLOAD TERKUNCI.
Silahkan SHARE untuk membuka kunci!
Pada seri selanjutnya kita akan mencar ilmu tentang bagaimana cara memakai atau mengundang function procedure , tetapi sebelum itu silahkan share Panduan ini sehingga lebih banyak lagi yang mendapat manfaatnya.
Tidak ada komentar untuk "Function Procedure Pada Vba Excel #08 | Kelas Excel"
Posting Komentar