Jumat, Maret 24, 2006

Menerjemahkan Angka ke Kata-kata di dalam Microsoft Excel

Ini salah satu cara bagaimana menerjemahkan angka ke dalam kata-kata dengan Visual Basic for Application dan nantinya akan dikenali sebagai macro. Fungsi dalam list program yang dipakai nantinya sebenarnya dapat digunakan pada aplikasi MS Office atau aplikasi Visual Basic lainnya namun pada bahasan ini dibatasi pada penggunaan dalam aplikasi MS Excel karena keterbatasan pengetahuan saya. Bagi yang sudah terbiasa pada penggunaan Visual Basic Editor pada MS Excel dapat langsung ke bagian list program.

Fungsi tersebut akan berguna:

  • Menerjemahkan angka ke dalam kata-kata sampai dengan 15 digit termasuk nilai desimal (ratusan trilian apabila tanpa nilai desimal).
  • Angka 15 digit ini merupakan nilai yang dapat ditampung MS Excel sebelum dirubah ke nilai exponen.
  • Desimal yang diterjemahkan sampai dengan dua angka dibelakang koma.
    Mengenal 4 Style, yaitu cara penulisan huruf besar/kecil-nya.
  • Bebas menggunakan satuan yang diinginkan.

Langkah-langkanya adalah:

  1. Buka aplikasi MS Excel, apabila secara otomatis tidak muncul workbook baru (atau Book1 maka bukalah Workbook baru dari File > New… (Ctrl+N);
  2. Pada workbook baru pada sheet mana saja pilihlah Tools > Macro > Visual Basic Editor atau dengan shortcut Alt+F11. Lihat Gambar 1 Gambar 1
    Setelah itu akan muncul window baru bertitle Microsoft Visual Basic. Setelah itu, pilih Insert > Module.
  3. Pada Module 1 yang baru dibuat, letakkan kursor pada bagian Code. Apabila belum muncul atau beralih ke bagian tersebut pilih View > Code (F7).
  4. Pada lembar kosong tersebut copy paste-kan list program pada file terbilang.txt. Lihat Gambar 2 Gambar 2
  5. Setelah Anda selesai mengcopy pilih File > Close and Return to Microsoft Excel untuk kembali ke workbook MS Excel.
  6. Simpan workbook tersebut, namai misalnya terbilang.xls.
  7. Sekarang Anda dapat mencoba fungsi tersebut dalam sheet mana saja dalam workbook tersebut. Misalnya Anda ketikan pada cell A1 angka berapa saja. Pilih cell yang akan menampung terjemahan kata-katanya, misalnya di A2.
  8. Pilih Insert > Function…, maka akan muncul dialog box daftar fungsi di MS Excel. Lihat Gambar 3 Gambar 3
  9. Dari daftar dalam Function category, pilihlah User Defined, sehingga dalam daftar di Function name muncul nama fungsi terbilang, pilih fungsi tersebut kemudian klik OK, sehingga muncul dialog box seperti Gambar 4. Gambar 4
  10. Isilah dialog box di atas dengan ketentuan sebagai berikut:
    Nilai_Angka
    Isilah dengan angka yang akan diterjemahkan, atau isi dengan nama cell yang berisi angka yang akan diterjemahkan, misalnya A1.
    Style
    Isi dengan kode 1 sampai dengan 4 untuk menentukan cara penulisannya.
    1:Teks terbilang ditulis dengan huruf besar (kapital) semua (uppercase);
    2:Teks terbilang ditulis dengan huruf kecil semua (lowercase);
    3:Teks terbilang ditulis dengan huruf besar pada awal kata saja (title case);
    4:Teks terbilang ditulis dengan huruf besar pada huruf pertama saja (sentence case).
    Isian style sifatnya optional, apabila tidak diisi maka defaultnya 4 (sentence case).
    Satuan
    Isi dengan satuan untuk teks terbilang, misalnya rupiah, unit atau buah. Isian satuan sifatnya optional, apabila dikosongkan maka teks terbilang ditulis tanpa satuan tertentu.
  11. Anda juga dapat langsung menggunakan fungsi terbilang secara langsung pada cell dengan formula:
    =terbilang(Nilai_Angka;Style;”Satuan”)
    Penjelasan lihat di atas. Perlu diperhatikan bahwa penulisan satuan ditulis dengan cara diapit tanda petik(”).
  12. Sekarang Anda tutup workbook tersebut. Coba buka kembali workbook tersebut, maka akan muncul peringatan seperti Gambar 5. Untuk dapat menggunakan fungsi terbilang diatas Anda harus memilih Enable Macros setiap kali Anda menggunakanGambar 5 Pada tahapan ini Anda dapat menggunakan fungsi terbilang pada cell dan worksheet mana saja tetapi terbatas pada workbook tersebut. Setiap kali Anda membuat file MS Excel dan memerlukan fungsi terbilang Anda harus mengulangi langkah-langkah di atas atau Anda menyimpan dengan nama atau lokasi yang berbeda dengan cara File > Save As… Ada cara lain agar setiap kali membuat file/workbook baru, Anda langsung dapat menggunakan fungsi terbilang.

Langkah-langkahnya:

  1. Buka file yang Anda simpan di atas yang berekstensi xls. Kemudian pilih File > Save As.. Kemudian pada isian File name isi dengan nama file, misalnya terbilang. Pada isian Save as type pilih Microsoft Excel Add-In (*.xla). Lihat Gambar 6 Gambar 6
    Secara default folder yang terbuka untuk menyimpan file type Add-In ini berada pada C:WINDOWS\Aplication Data\Microsoft\AddIns, sebaiknya Anda menyimpannya pada folder ini, meskipun Anda dapat menentukan lokasi lain. Nantinya file yang disimpan berekstensi xla.
  2. Setelah Anda menyimpannya, tutup MS Excel. Buka kembali dengan workbook baru.
  3. Pada workbook baru tersebut pilih Tools > Add-Ins… Muncul dialog box seperti pada Gambar 7.Gambar 7
    Klik Browse… maka secara default Anda dihadapkan pada isi folder AddIns seperti disebut pada point 1, kemudian pilih file Add-In terbilang tersebut. Maka fungsi terbilang akan masuk list pada Add-Ins available seperti pada Gambar 7. Pastikan Anda beri tanda check. Kemudian klik OK.
  4. Pada workbook baru ini, Anda sudah dapat menggunakan fungsi terbilang, begitu pula saat Anda nanti membuat file/workbook baru.
  5. Anda dapat menonaktifkan Add-In ini dengan menghilangkan tanda check seperti tersbut di atas.

SCRIPT VBA DI EXCEL

'Fungsi Terbilang dengan VBA untuk MS Office

'Ditulis oleh maseko

'Fungsi penterjemahan masing-masing angka

Private Function KeKata(Nomor)TrjKata = Array("", "satu", "dua", "tiga", "empat", "lima", "enam", "tujuh", "delapan", "sembilan")

KeKata = TrjKata(Nomor)

End Function

'Mulai penulisan Fungsi Terbilang

Public Function terbilang(Nilai_Angka, Optional Style = 4, Optional Satuan = "")Angka = Fix(Abs(Nilai_Angka))

'Desimal dibelakang koma

des1 = Mid(Abs(Nilai_Angka), Len(Angka) + 2, 1)

des2 = Mid(Abs(Nilai_Angka), Len(Angka) + 3, 1)

If des2 = "" Then

If des1 = "" Or des1 = "0" Then

Koma = ""

Else

Koma = " koma " & KeKata(des1)

End If

Else

If des2 = "0" Then

If des1 = "0" Then

Koma = ""

ElseIf des1 = "1" Then

Koma = " koma sepuluh"

Else

Koma = " koma " & KeKata(des1) & " puluh"

End If

Else

If des1 = "0" Then

Koma = " koma nol " & KeKata(des2)

ElseIf des1 = "1" Then

If des2 = "1" Then

Koma = " koma sebelas"

Else

Koma = " koma " & KeKata(des2) & " belas"

End If

Else

Koma = " koma " & KeKata(des1) & " puluh " & KeKata(des2)

End If

End If

'Misahin Angka

No1 = Left(Right(Angka, 1), 1)

No2 = Left(Right(Angka, 2), 1)

No3 = Left(Right(Angka, 3), 1)

No4 = Left(Right(Angka, 4), 1)No

5 = Left(Right(Angka, 5), 1)

No6 = Left(Right(Angka, 6), 1)

No7 = Left(Right(Angka, 7), 1)

No8 = Left(Right(Angka, 8), 1)

No9 = Left(Right(Angka, 9), 1)

No10 = Left(Right(Angka, 10), 1)

No11 = Left(Right(Angka, 11), 1)

No12 = Left(Right(Angka, 12), 1)

No13 = Left(Right(Angka, 13), 1)

No14 = Left(Right(Angka, 14), 1)

No15 = Left(Right(Angka, 15), 1)

'Satuan

If Len(Angka) >= 1 Then

If Len(Angka) = 1 And No1 = 1 Then

Nomor1 = "satu"

ElseIf Len(Angka) = 1 And No1 = 0 Then

Nomor1 = "Nol"

ElseIf No2 = "1" Then

If No1 = "1" Then

Nomor1 = "sebelas"

ElseIf No1 = "0" Then

Nomor1 = "sepuluh"

Else

Nomor1 = KeKata(No1) & " belas"

End If

Else

Nomor1 = KeKata(No1)

End If

Else

Nomor1 = ""

End If

'PuluhanIf Len(Angka) >= 2 Then

If No2 = 1 Or No2 = "0" Then

Nomor2 = ""

Else

Nomor2 = KeKata(No2) & " puluh "

End If

Else

Nomor2 = ""

End If

'Ratusan

If Len(Angka) >= 3 Then

If No3 = "1" Then

Nomor3 = "seratus "

ElseIf No3 = "0" Then

Nomor3 = ""

Else

Nomor3 = KeKata(No3) & " ratus "

End If

Else

Nomor3 = ""End If

'Ribuan

If Len(Angka) >= 4 Then

If No6 = "0" And No5 = "0" And No4 = "0" Then

Nomor4 = ""

ElseIf (No4 = "1" And Len(Angka) = 4) Or (No6 = "0" And No5 = "0" And No4 = "1") Then

Nomor4 = "seribu "

ElseIf No5 = "1" Then

If No4 = "1"Then

Nomor4 = "sebelas ribu "

ElseIf No4 = "0" Then

Nomor4 = "sepuluh ribu "

Else

Nomor4 = KeKata(No4) & " belas ribu "

End If

Else

Nomor4 = KeKata(No4) & " ribu "

End If

Else

Nomor4 = ""

End If

'Puluhan ribuIf Len(Angka) >= 5 Then

If No5 = "1" Or No5 = "0" Then

Nomor5 = ""

Else

Nomor5 = KeKata(No5) & " puluh "

End If

Else

Nomor5 = ""

End If

'Ratusan RibuIf Len(Angka) >= 6 Then

If No6 = "1" Then

Nomor6 = "seratus "

ElseIf No6 = "0" Then

Nomor6 = ""

Else

Nomor6 = KeKata(No6) & " ratus "

End If

Else

Nomor6 = ""

End If

'Jutaan

If Len(Angka) >= 7 Then

If No9 = "0" And No8 = "0" And No7 = "0" Then

Nomor7 = ""

ElseIf No7 = "1" And Len(Angka) = 7 Then

Nomor7 = "satu juta "

ElseIf No8 = "1" Then

If No7 = "1" Then

Nomor7 = "sebelas juta "

ElseIf No7 = "0" Then

Nomor7 = "sepuluh juta "

Else

Nomor7 = KeKata(No7) & " belas juta "

End If

Else

Nomor7 = KeKata(No7) & " juta "

End If

ElseNomor7 = ""

End If

'Puluhan juta

If Len(Angka) >= 8 Then

If No8 = "1" Or No8 = "0"

Then Nomor8 = ""

Else

Nomor8 = KeKata(No8) & " puluh "

End If

Else

Nomor8 = ""

End If

'Ratusan juta

If Len(Angka) >= 9 Then

If No9 = "1" Then

Nomor9 = "seratus "

ElseIf No9 = "0" Then

Nomor9 = ""

Else

Nomor9 = KeKata(No9) & " ratus "

End If

ElseNomor9 = ""

End If

'Milyar

If Len(Angka) >= 10 Then

If No12 = "0" And No11 = "0" And No10 = "0" Then

Nomor10 = ""

ElseIf No10 = "1" And Len(Angka) = 10

Then Nomor10 = "satu milyar "

ElseIf No11 = "1" Then

If No10 = "1" Then

Nomor10 = "sebelas milyar "

ElseIf No10 = "0" Then

Nomor10 = "sepuluh milyar "

Else

Nomor10 = KeKata(No10) & " belas milyar "

End If

Else Nomor10 = KeKata(No10) & " milyar "

End If

Else

Nomor10 = ""

End If

'Puluhan Milyar

If Len(Angka) >= 11 Then

If No11 = "1" Or No11 = "0" Then

Nomor11 = ""

Else

Nomor11 = KeKata(No11) & " puluh "

End If

Else

Nomor11 = ""

End If

'Ratusan Milyar

If Len(Angka) >= 12 Then

If No12 = "1" Then

Nomor12 = "seratus "

ElseIf No12 = "0" Then

Nomor12 = ""

Else

Nomor12 = KeKata(No12) & " ratus "

End If

Else

Nomor12 = ""

End If

'Triliun

If Len(Angka) >= 13 Then

If No15 = "0" And No14 = "0" And No13 = "0" Then

Nomor13 = ""

ElseIf No13 = "1" And Len(Angka) = 13 Then

Nomor13 = "satu triliun "

ElseIf No14 = "1" Then

If No13 = "1" Then

Nomor13 = "sebelas triliun "

ElseIf No13 = "0" Then

Nomor13 = "sepuluh triliun "

Else

Nomor13 = KeKata(No13) & " belas triliun "

End If

Else

Nomor13 = KeKata(No13) & " triliun "

End If

Else

Nomor13 = ""

End If

'Puluhan triliun

If Len(Angka) >= 14 Then

If No14 = "1" Or No14 = "0" Then

Nomor14 = ""

Else

Nomor14 = KeKata(No14) & " puluh "

End If

Else

Nomor14 = ""

End If

'Ratusan triliun

If Len(Angka) >= 15 Then

If No15 = "1" Then

Nomor15 = "seratus "

ElseIf No15 = "0" Then

Nomor15 = ""

Else

Nomor15 = KeKata(No15) & " ratus "

End If

Else

Nomor15 = ""

End If

If Len(Angka) > 15 Then

bilang = "Digit Angka Terlalu Banyak"

Else

If IsNull(Nilai_Angka) Then bilang = "" ElseIf Nilai_Angka < bilang = "minus ">

Else

bilang = Trim(Nomor15 & Nomor14 & Nomor13 & Nomor12 & Nomor11 & Nomor10 & Nomor9 & Nomor8 & Nomor7 _ & Nomor6 & Nomor5 & Nomor4 & Nomor3 & Nomor2 & Nomor1 & Koma & " " & Satuan)

End If

End If

If Style = 4 Then

terbilang = StrConv(Left(bilang, 1), 1) & StrConv(Mid(bilang, 2, 1000), 2)

Else

terbilang = StrConv(bilang, Style)

End If

terbilang = Replace(terbilang, " ", " ", 1, 1000, vbTextCompare)

End Function

Tidak ada komentar:

RKAPB Koperasi LIA thn 2024 6