P Belajar Membuat Ms Exel Macro ~ Mas Yudi ..!!!
Assalamu'alaikum ..... Selamat Datang di Blog Anak Desa ...

Beranda

Sabtu, 03 November 2012

Belajar Membuat Ms Exel Macro

Membuat Fungsi Sendiri dengan VBA Excel

Pada bab ini penulis akan membahas bagaimana cara membuat fungsi yang dibuat sendiri (user define function) pada Excel menggunakan VBA. Hal ini berguna bila kita hendak membutuhkan sebuah fungsi yang tidak disediakan oleh Microsoft Excel. Pada bahasan kali ini, penulis akan membuat fungsi yang akan merubah angka menjadi kata-kata pada Excel 2007. Tulisan ini diinspirasi oleh komentas salah seorang pembacabernama Pak Djoko Prakoso (djoko.prakoso.13@gmail.com)  pada tulisan "Memulai Macro Excel"
MEMBUAT BERKAS YANG MEMILIKI MACRO PADA EXCEL 2007
 
Karena menggunakan Excel 2007 maka berkas Excel yang kita buat haruslah menggunakan extensi “.xslm”. Sekarang mari kita membuat sebuah berkas baru Excel, berkas tersebut masih dalam format “.xslx”.
 
Buka berkas tersebut, kemudian simpan sebagai (save as) “fungsi sendiri.xslm”.
 
Maka kita telah membuat sebuah berkas Excel 2007 yang dapat menggunakan macro (macro enabled). Lalu kita atur keamanan dan privasi Excel kita pada  Macro Settings dan Trusted Location (lokasi terpercaya tempat kita menyimpan berkas-berkas excel ber-macro), sehingga macro yang telah kita buat dapat bekerja. Kedua pengaturan tersebut terdapat pada Excel Option-Trust Center-Trust_Center Settings.
 
 
Pada pengaturan Macro, pilih “Disabled All Macro Except Digitally Signed Macros” (pilihan ke 3) atau “Enabled All Macro” (pilihan ke 4), penulis menyarankan pilihan ke-4 bagi pemula.
 
Kemudian kita atur juga lokasi folder yang terpercaya (Trusted Location), di komputer penulis terletak di “E:\VBA\”. Jangan lupa untuk mencentang pilihan “Subfolder of this location also trusted” agar subfolder dari folder ini juga dipercaya.
 
 
MEMBUAT FUNGSI MERUBAH ANGKA KE KATA UNTUK ANGKA TUNGGAL
 
Untuk membuat fungsi sendiri, maka kita perlu membuat prosedur fungsi (function procedure) VBA pada module di Visual Basic Editor.
Sekarang kita telah membuat sebuah fungsi bernama “angka_ke_kata” yang akan menghasilkan sebuah kata (tipe data string) dengan argumen sebuah angka (tipe data double).  Tipe data string diperuntukkan untuk teks, sedangkan tipe data double diperuntukkan untuk bilangan asli dan pecahan.
Function angka_ke_kata(angka As Double) As String
Dalam fungsi ini pertama kita akan menyiapkan array yang berisi teks yang berassosiasi dengan bilangan yang dimaksud. Array itu kita beri nama “kata_angka”, berukuran 10, yang beranggotakan kata untuk bilangan dari nol sampai sembilan.
Dim kata_angka(10) As String
kata_angka(0) = "nol"
kata_angka(1) = "satu"
kata_angka(2) = "dua"
kata_angka(3) = "tiga"
kata_angka(4) = "empat"
kata_angka(5) = "lima"
kata_angka(6) = "enam"
kata_angka(7) = "tujuh"
kata_angka(8) = "delapan"
kata_angka(9) = "sembilan"
Berdasarkan array ini kita sudah dapat membuat sebuah fungsi yang merubah angka tunggal menjadi kata. Kita cukup menambahkan kode VBA yang mengembalikan kata yang sesuai dengan argumen “angka” ketika fungsi “kata_ke_angka” dipanggil.
angka_ke_kata = kata_angka(angka)
Sekarang kita kembali ke “sheet1” pada workbook Excel untuk mencoba fungsi yang telah dibuat. Isikan angka pada sel “A1” kemudian pada sel “A2” masukkan fungsi excel “angka_ke_kata”. Fungsi ini terletak pada pilihan fungsi “user defined”.


MEMBUAT FUNGSI MERUBAH ANGKA KE KATA UNTUK ANGKA LEBIH DARI 9
Sejauh ini kita telah membuat sebuah fungsi yang merubah angka ke kata. Tapi fugnsi ini bekerja hanya untuk angka-angka tunggal (dari nol sampai Sembilan). Lebih dari itu maka fugnsi init akan menghasilkan kesalahan, sebagai contoh kita tuliskan nilai 10 atau 200 di sel “A1”.
Selanjutnya kita akan melengkapi kode-kode di fungsi yang telah kita buat, sehingga dapat merubah angka lebih dari 9 menjadi kata. Algoritma nya sebenarnya cukup mudah, fungsi yang kita buat pertamaakan menghitung panjang angka yang akan diubah. Setelah itu fungsi tersebut akan merubah tiap anggota angka menggunakan array  “kata_angka” seperti bahaasan sebelumnya, kemudian menggabungkan hasil-hasilnya. Sehingga hasil yang akan didapat nanti adalah berupa gabungan kata-kata, atau lebih tepatnya disebut kalimat.
Dalam Visual Basic dikenal fungsi “Len(pernyataan)” yang berguna untuk mengetahui panjang sebuah teks (kata atau kalimat). Karena angka yang kita ubah berupa bilangan bukan teks, maka kita perlu merubah angka tersebut menjadi teks dengan fungsi “Cstr(pernyataan)”. Bilangan dalam format data double yang telah dikonversi menjadi format data string akan kita simpan dalam variabel “angka_dlm_teks”. Sedangkan panjangnya kita taruh dalam variabel “panjang_angka”.
angka_dlm_teks = CStr(angka)
panjang_angka = Len(angka_dlm_teks)
Sekarang mari kita uji hasilnya dengan angka 5 , 317, 105076. 
Berdasarkan informasi panjang angka tersebut, kita dapat membuat sebuah loop untuk merubah tiap anggota angka menjadi kata dan menggabungkannya kembali. Dalam loop tersebut setiap karakter dalam variabel “angka_dlm_teks” akan kita ambil meggunakan fungsi “Mid(string,awal,jumlah)”. Kemudian memasukan karakter itu ke dalam variabel “index_angka”. Variabel ini akan digunakan untuk mengambil data dari anggota array  “kata_angka” yang berasosiasi dengan karakter tersebut. Untuk menggabungkan hasilnya dari setiap kali proses tersebut diulang, maka digunakan operator penggabungan “&”.
For i = 1 To panjang_angka
    index_angka = Mid(angka_dlm_teks, i, 1)
    angka_ke_kata = angka_ke_kata & " " & kata_angka(index_angka)
Next
Sekarang mari ktia tes fungsi ini dengan angka 1, 720 dan 30827.


0 komentar:

Posting Komentar