Skip to main content

Menulis VBA Macro

MENULIS
VBA MACRO
          
      Bab ini akan membimbing anda untuk mulai menulis macro di VBA. Anda akan belajar tentang lingkungan Visual Basic Editor, struktur dasar sebuah macro, bagaimana menjalankan danbagaimana menguji macro.
            Bab ini juga akan menunjukkan kepada anda bagaimana untuk menjalankan macro ketika worksheet diaktifkan atau dinonaktifkan., ketika worksheet tersembunyi atau ketika workbook ditutup.  Dan akhirnya, bab ini akan menjelaskan bagaimana anda dapat debugging macro anda untuk menemui kesalahan (error) pada macro tersebut.

  o   Menulis Macro Pertama Anda
Untuk latihan, anda dapat melakukan hal berikut.
1)      Buka workbook baru dan tekan Alt + F11 untuk beralih ke Visual Basic Editor.
2)      Dalam VBE, klik dua kali pada Sheet1 di jendela Project Explorer.
3)      Ketika sub hitungArea() tanpa menggunakan huruf besar “S” sebagai awalan dari “sub”.
4)  Setelah memasukkan tanda kurung tutup, tekan tombol Enter. Dua baris kode akan ditambahkan seperti berikut.
VBE menambahkan baris “End Sub” dan mengkapitalkan “S” sari “sub”. Selalu tulisan kode anda dalam huruf kecil. VBE akan mengkapitalkan huruf anda ketika kata (sintaks) dieja secara benar.








Ini merupakan salah satu fitur menarik yang dapat selalu anda gunakan saat menulis macro. Ketika VBE gagal mengkapitalisasi, ini berarti kemungkinan ada kesalahan dalam ejaan sintaks anda.

Lanjut dengan mengetik sintaks macro seperti berikut :












  o   Memahami struktur Dasar Macro
       Bagian-bagian tertentu dari kode macro anda akan tampil dalam warnayang berbeda.anada tidak dapat mengubah font atau warna dijendela Code. Input akantampil dalam warna hitam, komentar dalam warna hijau, kata kunci (keyword) dalam warna biru dan ketika anda membuat kesalahan warna font berubah menjadi merah. Struktur macro anda terdiri dari bagian berikut.

     *      Baris komentar
       Baris komentar (yang dimulai dengan tanda apostrof akan muncul dalam warna hijau) tidak diharuskan. Komentar macro merupakan sepotong teks yang tidak akan dieksekusi olh Excel VBA. Komentar ini digunakan untuk menjelaskan tujuan dari variable, fungsi, dan subroutine dari macro tersebut.
Setiap baris kode (sintaks) diberi sebanyak empat karakter secara default dengan tujuan membuat kode macro lebih mudah dibaca. Anda dapat mengubah identasi dengan memilih menu Tools > Options > tab Editor > masukkan lebar identasi baru di Tab Width.
       Jika baris kode lebih panjang dari 100 karakter, VBE akan memecahkan menjadi baris baru dan member identasi tambahan sebanyak empat karakter.
Untuk melanjutkan satu baris kode, ketik spasi dan tanda garis bawah (_) pada akhir baris.
       Anda dapat menulis beberapa baris kode dalam satu baris dengan menggunakan tanda titik dua ( : ) sebagai pemisah baris kode. Misalnya, dua baris  kode  berikut dapat ditulis sebagai satu baris.
Untuk menulis dalam satu baris kode, gunakan titk tanda dua seperti berikut.
     
     *      Operator Penugasan ( Assignment operator)
              Anda dapat melakukan operasi pada variable (misalnya nembah,mengurangi, mengalikan atau membagi) dengan menggunakan operator seperti +,-,*,/. Sintaks berikut member nilai 3.142 ke dalam variable, Pi.

             Sintaks berikut mengalikan variable Pi dengan variable radius dan menampilkan hasilnya kedalam variable luas.











      Excel VBA MsgBox (message box) merupakan sebuah kotak dialog yang dapat anda gunakan untuk mrnampilkan informasi. Misalkan, MsgBox “Area =”& area akan menampilkan teks “Area = “(tanpa tanda kutip ganda) diikuti dengan nilai variable area.
Operator & akan menggabungkan string “Area = “ bersama dengan nilai dari variable area yang dihitung.
    o   Menjalankan Macro
            Untuk menjalankan macro, pilih menu Run > Run Sub/UserForm atau tekan tombol F5. Macro tersebut akan menampilkan popup InputBox  dimana anda dapat mengetik nilai untuk radius dan klik OK unruk melanjutkan.
Selanjutnya luas area yang dihitung akan ditampilkan dalam MsgBox.

      *       Menjalankan Macro Ketika Worksheet Diaktifkan
            Excel memungkinkan anda untuk menjalankan macro etiap kali worksheet diaktifkan. Misalnya,anda dapat membuat macro yang menampilkan menu kustom setiap kali orksheet ditampilkan. Agar macro dapat berjalan saat worksheet diaktifkan, lakukan langkah berikut :
1)     Tekan Alt + F11 untuk menampilkan VBA Editor.
2)     Pada jendela Project Explorer, disisi kiri editor, klik ganda pada nama worksheet yang anda inginkan (misalnya, Sheet1.) jendela Code akan muncul.
3)     
Dalam jendela Code, guinakan daftar pull-down kiri untuk memilih Worksheet dan kemudian gunakan daftar pull-down kanan untuk memilih Active. Kode berikut akanmuncul kode.
4)     Dalam subroutine baru, masukkan macro yang ingin anda jalankan setiap kali worksheet diaktifkan. Semua macro yang didefinisikan dengan cara ini akan dijalankan setiap kali worksheet diaktifkan dan bukan hanya ketika anda tekan tombol F5.

         *      Menjalankan Macro ketika Worksheet di nonaktifkan
      Anda juga dapat membuat Excel menjalankan macro setiap kali worksheet tertentu dinonaktifkan. Misalnya, setiap kali anda klik pada tab worksheet lain (untuk meninggalkan worksheet aat ini), macro tersebut akan dijalankan.
Langkahnya sebagai berikut
1)      Klik pada worksheet yang ingin anda macro jalankan.
   2) Pilih tab Formulas > Define Name (grub Defined Names). Excel akan menampilkan kotak dialog New Name.
3) Dalam bagian Name masukkkan nama yang dimulai dengan nama worksheet, diikuti dengan tanda seru dan Auto_Deactivate, diikuti dengan perintah lain yang diinginkan. Jadi, jika worksheet itu bernama Stok, anda dapat memasukkan rumus seperti Stok!Auto_Deactivate_Exit .

4) Dibagian Refers to, masukkan formula yang merunjuk ke workbook dan macro yang ingin dijalankan secara otomatis. Jadi, jika nama macro itu adalah updateStok, dan nama workbook itu Stok.xlsx, maka anda akan memasukkan rumus seperti =Stok! Updatestok. Klik Ok untuk melanjutkan.
  HTB1MAfTOXXXXXXqXVXXq6xXFXXXj.jpg Menjalankan Macro pada worksheet tertutup
     Anda dapat membuat Excel menjalankan macro secara otomatis setiap kali workbook tertentu ditutuo. Misalnya,  ketika anda menutup workbook, anda mungkin ingin menjalankan macro yang menutup workbook, anda mungkin ingin menjalankan macro yang meminta pengguna untuk menyimpan data ke file yang lain.
Untuk menjalankan macro secara otomatis ketika workbook ditutup, anda perlu membuat macro dengan nama Auto_Close().  Macro berikut ini dijalankan secara otomatis setiap kali workbook yang terkait ditutup.
  o   Testing & Menyimpan Macro
                Pengujian (testing)merupakan proses yang paling banyak memakan waktu dari setiap proyek VBA. Selama pengembangan proyek, anda akan menggunakan 20% dari waktu anda untuk menganalisa dan merancang, 15% untuk pemprograman dan 65% untuk pengujian (untuk memperbaiki bug, kesalahan ketik, atau kesalahan logis yang mungkin terjadi).
                Untuk menguji macro, pilih menu debug > Step Into atau tekan tombol F8. VBE akan menyoroti baris kode pertama dalam warna kuning. Kemudian tekan tombol [F8] untuk melihat efek di worksheet pada setiap langkah saat macro tersebut dijalankan.
                Baris komentar akan dilewati dan tidak diuji. Untuk  membatalkan pengujian macro, pilih menu Run > Restet.
                Ketika bekerja dengan macro di Excel 200, anda harus menyimpan dan membuka workbook dalam format macro-enable workbook(.xlsm) yang menyediakan keamanan tambahan. Bila anda membuat macro, anda harus menggunakan format macro-enabled untuk menyimpan workbook anda atau macro tersebut tidak akan disimpab. Pilih office button > Save As > Excel Macro-Enabled Workbook. Excel akan menambahkan ekstensi. xlsm untuk nama file macro anda.

     *      Memantau Nilai Variabel Anda
              Watch window memungkinkan anda untuk “memantau” nilai variabel atau ekspresi tertentu dan mengakibatkan eksekusi kode berhenti ketika nilai dari variabel atau ekspresi True diubah. Untuk menampilkan Watch Window, pilih menu View > Watch Window.
              Untuk membuat titik watch yang baru, klik pada garis yang anda inginkan (misalnya, digaris,area = pi * Radius * Radius) dan pilih menu Debug > Add Watch. Selanjutnya ekspresi tersebut akan ditampilkan dijendela Add Watch .

  o   Debugging VBA
              Setelah selesai menulis dan conpile macro anda – anda harus menguji dan memperbaiki (debug) kesalahan yang mungkin terjadi. Bagian ini menjelaskan berbagai cara debugging yang tersedia di Visual basic Rditor (VBE) dan cara menggunakannya.

*      Immediate Window
              Jendela Immediate adalah jendela di VBE di mana anda dapat memasukkan perintah dan melihat serta mengubah isi variabel ketika anda tidak mengeksekusi makro. Untuk menampilkan jendela Immediate, tekan tombol Ctrl + G atau pilih View > Intermediate Window.
Dalam jendela Immediate, anda dapat menampilkan isi dari variabel dengan menggunakan perintah ?. anda cukup mengetik tanda tanya (?) dikuti dengan nama variabel dan tekan tombol Enter.
Jendela Immediate kemungkinan akan menampilkan alamat, $AS1 yang menunjukkan alamatt sel dimana anda berada saat itu.
Anda juga dapat menjalankan perintah VBA dijendela Immediate dengan menghilangkan tanda tanya dan memasukkan perintah diikuti dengan menekan tombol Enter.
Kode makro di atas akan memberi nilai 1234 ke alamat sel, A1.
            Jendela Immediate tidak mengizinkan anda untuk memasukkan potongan kode VBA dan mengeksekusi mereka bersama-sama karena jendela Immediate hanya akan mengeksekusi perintah yang anda masukkan ketika anda menekan tombol Enter.
Namun, anda dapat menggabungkan beberapa baris kode menjadi satu baris kode dengan menggunkan tanda titik dua (J dan mengeksekusi perintah ini secara bersama. Misalnya, kode berikut akan menampilkan teks, “Makro” tiga kali di jendela Immediate.
Jendela Immediate selalu bertindak seolah-olah tidak ada pertanyaan Option Explicit di modul aktif, artinya anda tidak perlu menetapkan variabel yang anda gunakan dalam perintah di jendela Immediate. Bila anda menggunakan kata kunci Dim unruk menetapkan variabel di jendela Immediate, sistem akan menampilkan error kompilasi. 
  
          *      Debug.Print
Anda dapat menggunakan pernyataan Debug.Print manapun dalam kode anda untuk menampilkan pesan atau nilai-nilai variabel dijendela Immediate. Misalnya, anda dapat mengirim pesan ke jendela Immediate ketika bagian tertentu dari kode anda dijalankan.
Penggunaan Debug.Print memudahkan anda untuk mencetak arus pelaksanaan kode dan tidak akan mempengaruhi pelaksanaan kode anda sehingga aman untuk disisipkan dalam macro.
            Pertanyaan Debug.Print akan mengirim pesan ke jendela Immedite sehingga anda sebelumnya harus memastikan jendela ini terbuka untuk dapat melihat pesan. Sayangnya, tidak ada perintah khusus (misalnya, ClrScr) yang disediakan untuk membesihkan (clear) hasil eksekusi program sebelumnya dari jendela Immediate sebelum menampilkan hasil dari eksekudi kode yang baru.

         *      Debug.Assert
            Dalam Excel, anda dapat menggunkan pertanyaan Debug.Assert untuk membuat kode berhenti sementara (break) jika kondisinya tidak terpenugi. Sintaks pernyataan Debug.Assert ditulis seperti berikut.





Di mana kondisi merupakan ekspresi yang mengembalikan nilai True atau False. Jika kondisi bernilai False atau 0, maka VBA akan berhento sementara (break) pada baris tersebut. Sebagai contoh, kode brikut akan break pada baris debug. Assert karena kondisi (X<100) mengembalikan nmilai False.
        Debug.Assert adalah cara yang sangat berguna untuk menghentikan sementara kode ketika kondisi khusus atau tidak terduga terjadi. Perlu diingat, bahwa penggina terakhir (end user) tidak menginginkan kode program unuk masuk ke modus break dalam kondisi apapun, sehingga anda perlu memastikan bahwa pertanyaan tersebut telah dihapus sebelum mendistribusikan program anda.
         
              *      Break points
            Break points merupakan pengaturan pada baris kode tertentu yang menginformasikan kepada VBA untuk jeda (pause) sesaat sebelum baris kode dijalankan (break mode). Ketika VBA dalam modus break, anda dapat memasukkan perintah dalam jendela Immediate untuk menampilkan atau mengubah nilai variabel.
            Untuk menempatkan titik break pada baris kode, posisikan kursor pada baris yang diinginkan dan tekan tombol F9 atau pilih menu Debug > Toggle Breakpoint. Untuk menghapus titik break, posisikan lursor pada baris dengan titik break dan tekan tombol F9 kembali atau Debug > Toggle Breakpoint lagi.
            Ketika sebuah baris berisi titik break, latar belakang baris itu akan tampil berwarna. Sebelum baris kode ini dijankan, latar belakang baris akan ditampilkan dalam warna kuning, ketika titik break (breakpoint) ditemukan, eksekusi kode akan berhenti untuk sementara.
            Anda tidak dapat menempatkan break point pada baris kosong, baris  komentar, atau pada baris dimana anda menempatkan variabel (baris dengan pertanyaan Dim).
            Setelah break point ditemukan, anda dapat melanjutkan eksekusi kode dengan menkan tombol F5 atau pilih menu Run>Continue. Atau anda dapat melanjutkan dengan kode berkut baris demi baris (lihat penjelasan Stepping through Code)\
            Break point tidak disimpan dan jika anda menutup file, maka semua break point akan dihapus secara otomatis.

           *     Stepping Through Code
            Saat anda ingin menguji kode, anda dapat melakukannya dengan menguji kode anda baris (stepping through) dan melihat perubahan yang terjadi pada setiap baris kode. Hal ini memudahkan anda untuk menentukan dengan tepat apa yang menyebabkan error pada macro anda.
            Untuk menguji kode baris demmi baris, tekanF8 atau pilih menu Debug > Step Into untuk mengeksekudi setiap baris satu persatu  dan menyoroti baris berikutnya dengan warna kuning. Baris yang disorot adalah baris kode yang akan di eksekusi ketika anda menekan tombol F8.
            Jika prosedur anda memanggil prosedur (Sub atau Functions  ) lain, menekan tombol F8 akan menyebabkan VBA berpindah ke prosedur tersebut dan mengaksekusi macro di dalamnya baris demi baris.
            Anda dapat menggunakan Shif + F8 untuk “Step Over” prosedur tersebut atau memilih menu Debug > Step Over. Ini berarti bahwa seluruh prosedur yang dipanggil (called procedure) akan dijalankan sebagai satu baris kode. Hal ini dapat membuat debugging lebih mudah jika anda yakin bahwa masalahnya tidak teletak pada prosedur tersebut.
            Ketika anda berada dalam suatu prosedur yang dipanggil ( called procedure ) anda dapat menggunakan tombol Ctrl + Shift + F8 atau pilih menu Debug > Tep Out untuk “Step Out” (melangkah Keluar) dari prosedur tersebut.
            Ini akan menyebabkan VBA mengeksekusi sampai akhir prosedur tersebut (sampai pada pernyataan End Sub atau Exit Sub) dan berhenti dibaris kode berikut dari yang memanggil prosedur tersebut.

         *     Run to cursor
            Perintah ini menginformasikan VBA untuk mengeksekusi kode sampai baris dimana kursor berada. Bila baris ini sudah tercapai, VBA akan masuk dalam mode break.
            Hal ini mirip dengan menempatkan titik break pada baris kode, namun yang membekannya adalah apabila baris kode tersebut dieksekusi untuk kedua kalinnya, maka eksekusi kode tidak mengalami jeda (pause).

         *     Locals  Window
            Jendela Locals menampilkan semua variable yang berada dalam prosedur (dan juga variable global yang ditempatkan pada tingkat prosedur tau tingkat module) dan nilai dari variable tersebut.
            Hal ini memudahkan anda untuk melihat anda untuk melihat nilai dari setiap variable dari posisi dimana nilai variable tersebut berubah ketika anda melangkah (stp through) melalui kode anda. Untuk menampilkan jendela Locals, pilih menu View > Locals window. Jendela locals tidak mengijinkan anda untuk mengubah nilai-nilai variable seperti dalam jendela Immediate.
            Saat anda menekan F8 untuk melangkah melalui kode anda jendela Locals akan menampilkan nilai dalam variable  X dan Y.
            Baris yang ditandai dengan warna kuning adalah baris saat ini dan merupakan baris yang akan dieksekusi. 


Comments

Popular posts from this blog

lambang saka wira kartika

LAMBANG SAKA WIRA KARTIKA Lambang Saka Wira Kartika berbentuk segi lima beraturan dengan warda dasar merah dan putih. Di dalamnya terdapat gambar Kartika Eka Paksi, 2 buah tunas kelapa, 2 untai batang padi yang menguning, dan pita bertuliskan Saka Wira Kartika. Gambar Kartika Eka Paksi merupakan lambang dan semboyan TNI Angkatan Darat. lambang Saka Wira Kartika Penjelasan lebih mendalam mengenai lambang Saka Wira Kartika beserta arti kiasan yang terkandung di dalamnya akan diuraikan dalam artikel tersendiri. Anggota Saka Wira Kartika Layaknya pada Satuan Karya Pramuka lainnya, anggota Saka Wira Kartika disyaratkan seorang Pramuka Penegak atau Pramuka Pandega baik putera dan puteri yang menjadi anggota  gugusdepan  di wilayah cabang atau ranting di mana Saka Wira Kartika itu berada.  Untuk dapat mendaftar sebagai anggota Saka Wira Kartika seorang pramuka harus : §   Pramuka Penegak Bantara atau Pramuka Penegak Laksana atau...

Event Programming Dengan Excel VBA

Event Programming Dengan  Excel VBA o    Menggunakan VBA Excel untuk event programming Untuk membuka excel visual basic editor tekn Alt+F11 sesudah anda membuka excel. Jika anda belum membuat macro, jendela code tidak akan menampilkan apa-apa kecuali jika anda klik ganda pada Sheet1 (atau objek lain seperti modul). Atau pilih menu Insert > UserFrom untuk membuat user from baru atau Insert > Module untuk membuat modul baru. Lingkungan Visual Editor pada dasarnya terdiri dari jendela berikut ini. Keterangan dari masing-masing bagian sudah dijelaskan dalam Bab 1. Bagian / Jendela Untuk membuka 1. Standar Toolbar Pilih menu View > Toolsbars > Standard 2. Project Explorer Pilih menu View > Project Explorer atau tekan tombol Ctrl + R 3. Code Pilih menu View > Code atau tekan tombol F7 4.Properties Pilih menu View > Properties Window atau tekan tombol F4 5. Immediate ...

Saka Wirakartika Kabupaten Sragen Tahun 2018

SAKA WIRAKARIKA KABUPATEN SRAGEN TAHUN 2018 Hallo kakak-kakak pramuka diseluruh dunia. Apa kabar nih? Ciyelah,, sehatkan ? Alhamdullilah. Pada kesempatan kali ini kita akan membahas salah satu tentang Satuan Karya Pramuka yaitu saka wira karika. Apasih saka wirakartika itu ? dan kegiatan apakah yang sedang berlangsung? Yuhh, cusss kit abaca arikel berikut. Saka atau Satuan Karya Pramuka Wira Kartika   merupakan salah satu Satuan Karya Pramuka yang bersifat nasional. Saka yang dibentuk lewat kerjasama antara Kwartir Nasional dengan TNI Angkatan Darat ini bertujuan untuk mengembangkan pendidikan bela negara. Di samping Saka Wira Kartika, saka lainnya yang bersifat nasional seperti Saka Bhayangkara ,  Saka Bahari , Saka Bakti Husada, Saka Dirgantara, Saka Kencana, Saka Taruna Bumi, Saka Wanabakti, Saka Pariwisata, Saka Kalpataru, dan Saka Widya Budaya Bakti. Saka Wira Kartika adalah wadah kegiatan bagi  Pramuka Penegak  dan  Pramuka Pandega untuk men...