Tips kali ini kita akan membuat sebuah makro yang akan "membilang" angka baik itu dalam
Rupiah atau Dollar. Sehingga kita tidak lagi harus menulis "Satu juta dua ratus ribu rupiah" untuk membilang angka 1.200.000.
Berikut adalah source codenya.
‘Main
Function of SpellNumber
Function SpellNumber(ByVal MyNumber)
Dim Rupiah,
Sen, Temp
Dim DecimalPlace,
Count
ReDim Place(9)
As String
Dim a As Long
Place(2) = " Ribu"
Place(3) = " Juta"
Place(4) = " Milyar"
Place(5) = " Trilyun"
MyNumber = Trim(Str(MyNumber))
DecimalPlace
= InStr(MyNumber, ".")
If DecimalPlace
> 0 Then
Sen = Left(Mid(MyNumber, DecimalPlace + 1) & "00", 2) & "/100"
MyNumber = Trim(Left(MyNumber, DecimalPlace - 1))
End If
Count = 1
Do While MyNumber
<> ""
Temp = GetHundreds(Right(MyNumber, 3))
If Temp <> "" Then Rupiah = Temp & Place(Count) & Rupiah
If Len(MyNumber) > 3 Then
MyNumber = Left(MyNumber, Len(MyNumber) - 3)
Else
MyNumber = ""
End If
Count = Count + 1
Loop
Select Case
Rupiah
Case ""
Rupiah = "Nol "
Case "One"
Rupiah = "Satu"
Case Else
Rupiah = Rupiah & " "
End Select
Select Case
Sen
Case ""
Sen = "Rupiah"
Case "One"
Sen = ", 1/100 Rupiah"
Case Else
Sen = ", " & Sen & " Rupiah"
End Select
If Left(Trim(Rupiah),
9) = "Satu Ribu" Then
Rupiah = "Seribu" & Mid(Rupiah, 11)
End If
SpellNumber
= Trim(Rupiah & Sen)
End Function
‘Main Function of SpellDollar
Function Spelldollar(ByVal MyNumber)
Dim Dollar,
Sen, Temp
Dim DecimalPlace,
Count
ReDim Place(9)
As String
Dim a As Long
Place(2) = "
Ribu"
Place(3) = "
Juta"
Place(4) = "
Milyar"
Place(5) = "
Trilyun"
MyNumber = Trim(Str(MyNumber))
DecimalPlace
= InStr(MyNumber, ".")
If DecimalPlace
> 0 Then
Sen = Left(Mid(MyNumber, DecimalPlace + 1) & "00", 2) & "/100"
MyNumber = Trim(Left(MyNumber, DecimalPlace - 1))
End If
Count = 1
Do While MyNumber
<> ""
Temp = GetHundreds(Right(MyNumber, 3))
If Temp <> "" Then Dollar = Temp & Place(Count) & Dollar
If Len(MyNumber) > 3 Then
MyNumber = Left(MyNumber, Len(MyNumber) - 3)
Else
MyNumber = ""
End If
Count = Count + 1
Loop
Select Case
Dollar
Case ""
Dollar = "Nol "
Case "One"
Dollar = "Satu"
Case Else
Dollar = Dollar & " "
End Select
Select Case
Sen
Case ""
Sen = "Dollar"
Case "One"
Sen = ", 1/100 Dollar"
Case Else
Sen = ", " & Sen & " Dollar"
End Select
If Left(Trim(Dollar),
9) = "Satu Ribu" Then
Dollar = "Seribu" & Mid(Dollar, 11)
End If
Spelldollar = Trim(Dollar & Sen)
End Function
’fungsi utk merubah
angka 100-999 jadi text
Function GetHundreds(ByVal MyNumber)
Dim Result As
String
If Val(MyNumber)
= 0 Then Exit Function
MyNumber = Right("000"
& MyNumber, 3)
If Mid(MyNumber,
1, 1) <> "0" Then
If Mid(MyNumber, 1, 1) = "1" Then
Result = "Seratus"
Else
Result = GetDigit(Mid(MyNumber, 1, 1)) & " Ratus"
End If
End If
If Mid(MyNumber,
2, 1) <> "0" Then
Result = Result & GetTens(Mid(MyNumber, 2))
Else
Result = Result & GetDigit(Mid(MyNumber, 3))
End If
GetHundreds
= Result
End Function
‘funsi untuk merubah angka 10-99 menjadi text.
Function GetTens(TensText)
Dim Result As
String
Result = ""
If Val(Left(TensText,
1)) = "1" Then
Select Case Val(TensText)
Case 10: Result = " Sepuluh"
Case 11: Result = " Sebelas"
Case 12: Result = " Dua Belas"
Case 13: Result = " Tiga Belas"
Case 14: Result = " Empat Belas"
Case 15: Result = " Lima Belas"
Case 16: Result = " Enam Belas"
Case 17: Result = " Tujuh Belas"
Case 18: Result = " Delapan Belas"
Case 19: Result = " Sembilan Belas"
Case Else
End Select
Else
Select Case Val(Left(TensText, 1))
Case 2: Result = " Dua Puluh"
Case 3: Result = " Tiga Puluh"
Case 4: Result = " Empat Puluh"
Case 5: Result = " Lima Puluh"
Case 6: Result = " Enam Puluh"
Case 7: Result = " Tujuh Puluh"
Case 8: Result = " Delapan Puluh"
Case 9: Result = " Sembilan Puluh"
Case Else
End Select
Result = Result & GetDigit(Right(TensText, 1))
End If
GetTens = Result
End Function
’fungsi utk merubah
angka 1-9 menjadi text.
Function GetDigit(Digit)
Select Case
Val(Digit)
Case 1: GetDigit = " Satu"
Case 2: GetDigit = " Dua"
Case 3: GetDigit = " Tiga"
Case 4: GetDigit = " Empat"
Case 5: GetDigit = " Lima"
Case 6: GetDigit = " Enam"
Case 7: GetDigit = " Tujuh"
Case 8: GetDigit = " Delapan"
Case 9: GetDigit = " Sembilan"
Case Else: GetDigit = ""
End Select
End Function
Adapun cara membuatnya adalah sebagai berkut:
Langkah 1. Buka File MS-Excel yang akan ditambahkan Fungsi SpellNumber
dan SpellDollar
Langkah 2. Buka Microsoft Visual Basic Editor melalui menu Tools->Macro->Visual
Basic Editor atau dengan menekan kombinasi tombol Alt+F11.
Langkah
3. Pada aplikasi Visual Basic Editor tambahkan "module" melalui menu
Insert->Module.
Langkah 4. Copykan Source Code fungsi Spellnumber diatas
ke jendela Module1.
Langkah 5. Tutup jendela Microsoft Visual Basis Editor dan kembali
ke aplikasi MS-Excel Nah.. Fungsi Spellnumber dan Spelldollar siap digunakan. Syntaxnya adalah =SPELLNUMBER(number) untuk
valuta Rupiah dan =SPELLDOLLAR(number) untuk valuta Dollar, dimana number adalah angka atau sebuah cell yang berisi angka.
contoh
: jika angka yang kita mau terbilang terltak pada cell A5 maka,
=spellnumber(A5)
Catatan:
Secara
default MS-Excel 2003 mengatur securitynya ke level High sehingga makro yang kita buat tadi tidak dapat digunakan, untuk itu
atur lah security menjadi level Medium melalui menu Tools>Macro>Security. Dan jangan lupa untuk mengklik "enable
macros" apabila membuka file MS-Excel yang telah ditambahkan makro ini supaya fungsi Spellnumber dan SpellDollar
bisa digunakan. Demikian Tips MS-Excel kali ini.