Berikut adalah fungsi masing-masing kode VBA untuk fungsi Terbilang
di Excel:
1. Fungsi Terbilang
:
- Tujuan: Mengubah angka numerik menjadi teks terbilang dalam bahasa Indonesia.
- Input:
MyNumber
(tipe dataCurrency
) – angka yang akan diubah menjadi terbilang. - Output:
Terbilang
(tipe dataString
) – representasi teks dari angka input. - Cara Kerja:
- Inisialisasi Array: Mendefinisikan array
Satuan
,Belasan
,Puluhan
,Ratusan
, danRibuan
yang berisi teks untuk setiap digit dan kelompok angka (ribu, juta, miliar, dst.). - Menangani Angka Negatif: Jika
MyNumber
negatif, maka kata “Minus” ditambahkan di awal output. - Looping untuk Setiap Kelompok Digit: Melakukan looping untuk setiap kelompok tiga digit (ratusan, ribuan, jutaan, dst.) pada
MyNumber
.- Menggunakan Fungsi
Modulus
: Menggunakan fungsiModulus
untuk mendapatkan sisa bagi dari pembagianMyNumber
dengan 1000. - Memproses Ratusan, Puluhan, dan Satuan: Menggunakan array yang telah didefinisikan untuk mengubah setiap digit menjadi teks terbilang.
- Menggabungkan Teks Terbilang: Menggabungkan teks terbilang dari ratusan, puluhan, dan satuan, lalu menambahkan nama kelompok ribuan (ribu, juta, miliar, dst.).
- Menggunakan Fungsi
- Membersihkan Spasi: Menghapus spasi berlebih di awal dan akhir output.
- Inisialisasi Array: Mendefinisikan array
2. Fungsi Modulus
:
- Tujuan: Menghitung sisa bagi dari pembagian dua angka.
- Input:
Angka1
(tipe dataCurrency
) – angka yang akan dibagi.Angka2
(tipe dataCurrency
) – pembagi.
- Output:
Modulus
(tipe dataCurrency
) – sisa bagi dari pembagianAngka1
denganAngka2
. - Cara Kerja:
- Menghitung Hasil Bagi: Menghitung hasil bagi bulat dari
Angka1
dibagiAngka2
menggunakan fungsiInt()
. - Menghitung Sisa Bagi: Mengurangi
Angka1
dengan hasil kali antara hasil bagi bulat danAngka2
.
- Menghitung Hasil Bagi: Menghitung hasil bagi bulat dari
Tambahan:
- Tipe Data
Currency
: Digunakan untuk menangani angka besar dengan presisi yang lebih baik dan menghindari errorData type mismatch
. - Array: Memudahkan penyimpanan dan penggunaan teks terbilang untuk setiap digit dan kelompok angka.
- Looping: Memungkinkan kode untuk memproses angka dengan jumlah digit yang bervariasi.
berikut vba lengkap nya, semoga bermanfaat
referensi https://vba.co.id/udf-terbilang-milyar-triliun/
———————————————————————————————–
Function Terbilang(ByVal MyNumber As Currency) As String
Dim Temp As String
Dim Satuan As Variant, Belasan As Variant, Puluhan As Variant
Dim Ratusan As Variant, Ribuan As Variant
Dim i As Long, Angka As Currency
‘ Inisialisasi array
Satuan = Array(“”, “Satu”, “Dua”, “Tiga”, “Empat”, “Lima”, “Enam”, “Tujuh”, “Delapan”, “Sembilan”)
Belasan = Array(“Sepuluh”, “Sebelas”, “Dua Belas”, “Tiga Belas”, “Empat Belas”, “Lima Belas”, “Enam Belas”, “Tujuh Belas”, “Delapan Belas”, “Sembilan Belas”)
Puluhan = Array(“”, “”, “Dua Puluh”, “Tiga Puluh”, “Empat Puluh”, “Lima Puluh”, “Enam Puluh”, “Tujuh Puluh”, “Delapan Puluh”, “Sembilan Puluh”)
Ratusan = Array(“”, “Seratus”, “Dua Ratus”, “Tiga Ratus”, “Empat Ratus”, “Lima Ratus”, “Enam Ratus”, “Tujuh Ratus”, “Delapan Ratus”, “Sembilan Ratus”)
Ribuan = Array(“”, “Ribu”, “Juta”, “Miliar”, “Triliun”, “Kuadriliun”)
‘ Jika angka negatif, tambahkan “Minus”
If MyNumber < 0 Then
Terbilang = “Minus ”
MyNumber = -MyNumber
End If
‘ Looping untuk setiap kelompok tiga digit
i = 0
Do While MyNumber > 0
Temp = “”
Angka = Modulus(MyNumber, 1000) ‘ Menggunakan fungsi Modulus
‘ Ratusan
If Angka > 99 Then
Temp = Ratusan(Int(Angka / 100)) & ” ”
Angka = Modulus(Angka, 100) ‘ Menggunakan fungsi Modulus
End If
‘ Puluhan dan Belasan
If Angka > 19 Then
Temp = Temp & Puluhan(Int(Angka / 10)) & ” ”
Angka = Modulus(Angka, 10) ‘ Menggunakan fungsi Modulus
ElseIf Angka > 9 Then
Temp = Temp & Belasan(Angka – 10) & ” ”
Angka = 0
End If
‘ Satuan
If Angka > 0 Then
Temp = Temp & Satuan(Angka) & ” ”
End If
‘ Tambahkan nama kelompok ribuan
If Temp <> “” Then
Terbilang = Temp & Ribuan(i) & ” ” & Terbilang ‘ Menambahkan spasi setelah Ribuan(i)
End If
MyNumber = Int(MyNumber / 1000)
i = i + 1
Loop
‘ Hilangkan spasi di awal dan akhir
Terbilang = Trim(Terbilang)
End Function
‘ Fungsi Modulus
Function Modulus(Angka1 As Currency, Angka2 As Currency) As Currency
Dim MyMod As Currency
MyMod = Int(Angka1 / Angka2)
Modulus = Angka1 – (MyMod * Angka2)
End Function
download file nya disini