Cara Mengubah Angka Menjadi Huruf (Terbilang) Dengan VBA Excel 2023

Microsoft Excel merupakan salah satu aplikasi pengolah data yang sangat populer dan sering digunakan untuk melakukan perhitungan atau analisis data. Salah satu fitur yang mungkin jarang digunakan namun berguna bagi pengguna adalah kemampuan untuk mengubah angka menjadi huruf terbilang. Dalam artikel ini, kami akan menjelaskan bagaimana cara mengubah angka menjadi huruf terbilang di Excel VBA.




Excel VBA adalah bahasa pemrograman yang digunakan untuk mengembangkan aplikasi makro di Excel. Dalam VBA, Anda dapat membuat sebuah fungsi kustom yang akan mengubah angka menjadi huruf terbilang.

Berikut adalah langkah-langkah untuk membuat fungsi terbilang di Excel VBA:

  1. Buka Excel dan tekan tombol Alt + F11 untuk membuka Editor Visual Basic.
  2. Pada jendela Editor Visual Basic, klik Insert > Module untuk membuat modul baru.
  3. Beri nama modul tersebut dengan nama yang sesuai, seperti "ModulTerbilang".
  4. Masukkan kode berikut ke dalam modul tersebut:
Function TERBILANG(ByVal n As Currency) As String
    Const Thousand = 1000@
    Const Million = Thousand * Thousand
    Const Billion = Thousand * Million
    Const Trillion = Thousand * Billion
    
    If n = 0@ Then TERBILANG = "nol": Exit Function
    
    Dim Buf As String
    If n < 0@ Then Buf = "minus "
    Dim Frac As Currency: Frac = Abs(n - Fix(n))
    If n < 0@ Or Frac <> 0@ Then n = Abs(Fix(n))
    
    If n >= Trillion Then Buf = Buf & EnglishDigitGroup(n \ Trillion) & " triliun ": n = n Mod Trillion
    If n >= Billion Then Buf = Buf & EnglishDigitGroup(n \ Billion) & " milyar ": n = n Mod Billion
    If n >= Million Then Buf = Buf & EnglishDigitGroup(n \ Million) & " juta ": n = n Mod Million
    If n >= Thousand Then Buf = Buf & EnglishDigitGroup(n \ Thousand) & " ribu ": n = n Mod Thousand
    
    If n > 0 Then Buf = Buf & EnglishDigitGroup(n)
    If Frac > 0 Then
        If n > 0 Then Buf = Buf & " "
        Buf = Buf & Format$(Frac * 100@, "00") & "/100"
    End If
    
    TERBILANG = Buf
End Function

Private Function EnglishDigitGroup(ByVal n As Integer) As String
    Const Hundred = "ratus"
    Const One = "satu "
    Const Two = "dua "
    Const Three = "tiga "
    Const Four = "empat "
    Const Five = "lima "
    Const Six = "enam "
    Const Seven = "tujuh "
    Const Eight = "delapan "
    Const Nine = "sembilan "
    
    Dim Buf As String: Buf = ""
    Dim Flag As Boolean: Flag = False
    
    Select Case (n \ 100)
        Case 0: Buf = "": Flag = False
        Case 1: Buf = One & Hundred: Flag = True
        Case 2: Buf = Two & Hundred: Flag = True
        Case 3: Buf = Three & Hundred: Flag = True
        Case 4: Buf = Four & Hundred: Flag = True
        Case 5: Buf = Five & Hundred: Flag = True
        Case 6: Buf = Six & Hundred: Flag = True
        Case 7: Buf = Seven & Hundred: Flag = True
        Case 8: Buf = Eight & Hundred: Flag = True
        Case 9: Buf = Nine & Hundred: Flag = True
    End Select
    
    If Flag <> False Then n = n Mod 100
    
    Select Case (n \ 10)
        Case 0, 1: Flag = False
        Case 2: Buf = Buf & "dua puluh": Flag = True
        Case 3: Buf = Buf & "tiga puluh": Flag = True
        Case 4: Buf = Buf & "empat puluh": Flag = True
        Case 5: Buf = Buf & "lima puluh": Flag = True
        Case 6: Buf = Buf & "enam puluh": Flag = True
        Case 7: Buf = Buf & "tujuh puluh": Flag = True
        Case 8: Buf = Buf & ""

End Select
If (Flag <> False) Then n = n Mod 10
  If (n > 0) Then
    If (Flag <> False) Then Buf = Buf & " "
  Else
    EnglishDigitGroup = Buf
    Exit Function
  End If

  Select Case (n)
    Case 0:
    Case 1: Buf = Buf & "satu"
    Case 2: Buf = Buf & "dua"
    Case 3: Buf = Buf & "tiga"
    Case 4: Buf = Buf & "empat"
    Case 5: Buf = Buf & "lima"
    Case 6: Buf = Buf & "enam"
    Case 7: Buf = Buf & "tujuh"
    Case 8: Buf = Buf & "delapan"
    Case 9: Buf = Buf & "sembilan"
    Case 10: Buf = Buf & "sepuluh"
    Case 11: Buf = Buf & "sebelas"
    Case 12: Buf = Buf & "dua belas"
    Case 13: Buf = Buf & "tiga belas"
    Case 14: Buf = Buf & "empat belas"
    Case 15: Buf = Buf & "lima belas"
    Case 16: Buf = Buf & "enam belas"
    Case 17: Buf = Buf & "tujuh belas"
    Case 18: Buf = Buf & "delapan belas"
    Case 19: Buf = Buf & "sembilan belas"
   End Select

   EnglishDigitGroup = Buf
End Function

Setelah kode selesai disalin, simpan modul tersebut dengan menekan Ctrl + S atau mengklik File > Save.

Dalam kode VBA di atas, terdapat beberapa variabel yang digunakan untuk menyimpan nilai-nilai terbilang dalam bahasa Indonesia. Variabel tersebut diisi dengan nilai terbilang untuk satuan, belasan, puluhan, ratusan, ribuan, jutaan, milyaran, dan triliunan.

Kode kemudian memeriksa nilai angka yang diberikan pada fungsi Terbilang dan mengubahnya menjadi huruf terbilang dengan menggunakan nilai-nilai terbilang yang disimpan dalam variabel tadi.

Setelah fungsi Terbilang selesai diimplementasikan, Anda dapat menggunakan fungsi tersebut pada sel Excel yang ingin diubah menjadi huruf terbilang. Dengan begitu, pengguna dapat dengan mudah mengubah nilai angka menjadi bentuk teks yang lebih mudah dibaca dan dimengerti.