Memulai Belajar VBA

  1. 4 tahun lalu

    Dear rekan2, master, suhu Belajar Excel

    boleh mohon sarannya utk dari mana memulai belajar VBA Excel, saya sangat awam mengenai VBA
    utk rumus-rumus excel yang common saya lumayan bisa dan mengaplikasikan dalam pekerjaan saya, tapi VBA sama sekali awam dan tidak pernah

    Mohon bimbingannya

    Terimakasih

    Regard,
    Andro

  2. Caton

    30 Des 2019 Terverifikasi Indonesia + 20.101 Poin

    @Androni ...

    Berdasarkan pengalaman pribadi, ada beberapa hal yang dapat saya sarankan :

    [1]. Kenali dan pahami dahulu struktur bahasa pemrograman VBA. Misalkan saja, pahami apa yang dimaksud variabel, konstanta, tipe variabel, prosedur atau fungsi, lingkup variabel dan lain sebagainya. Sekarang sudah banyak buku-buku mengenai Excel VBA yang ada beredar. Atau cari situs-situs yang membahas dasar-dasar pemrograman dengan VBA. Coba baca diskusi Belajar VBA & macro atau diskusi How To Learn VBA untuk rujukan.

    [2]. Excel VBA pada dasarnya merupakan bahasa pemrograman berorientasi objek — meskipun hanya bersifat generik. Jadi, untuk dapat mengakses setiap objek (seperti Workbook, Worksheet, Range dan sebagainya), pahami cara-cara yang sudah ditetapkan. Misalkan saja, perintah berikut :

    Set objWorksheet = ThisWorkbook.Worksheets("Sheet1")

    merupakan salah satu cara yang dapat kita lakukan untuk menetapkan objek Worksheet dengan nama tab SHEET1 kepada variabel objWorksheet. Pada perintah tersebut, ThisWorkbook merupakan variabel yang sudah ditetapkan (Reserved Variable) yang ditetapkan kepada objek Workbook dimana baris perintah dibuat. Dalam hal ini, ThisWorkbook merupakan parent object dari objek Worksheet dengan nama tab SHEET1. Dengan perintah tersebut di atas, variabel objWorksheet akan memiliki semua properti yang dimiliki oleh objek Worksheet SHEET1.

    [3]. Excel memiliki banyak sekali objek, dimana setiap objek umumnya memiliki member berupa Properties, Events dan Function. Setiap objek, dapat memiliki lebih dari 1 member. Tentu akan sangat sulit untuk mengingat semuanya. Biasanya, saya menggunakan jendela Object Browser (shortcut: F2) pada jendela VBE (VisualBasic Editor) untuk mengetahui member apa saja yang dimiliki oleh objek yang akan saya gunakan. Pada jendela Object Browser, kita dapat melihat objek-objek apa saja yang tersedia dan member apa saja yang dimiliki oleh setiap objek. Misalkan contoh pada poin 2 di atas, ThisWorkbook merupakan sebuah objek yang memiliki properti di antaranya seperti Name, Path dan sebagainya. Pada contoh tersebut, Worksheets merupakan properti ThisWorkbook yang berupa (bertipe) sebuah objek. Selain Properties, adakalanya sebuah objek memiliki member berupa Events dan Functions, contohnya :

    ThisWorkbook.Close

    Pada perintah di atas, Close merupakan fungsi yang dimiliki oleh objek ThisWorkbook.

    [4]. Excel memiliki fungsi Macro Recorder yang dapat digunakan untuk mencatat rangkaian proses yang kita kerjakan dan mengkonversikannya ke dalam script VBA. Memang tidak semua proses dapat direkam oleh fitur tersebut. Namun, proses kerja yang umum kita gunakan, pada dasarnya dapat direkam oleh fitur tersebut.

    -image-

    Coba rekam proses sederhana dan lihat hasilnya. Contohnya, berikut hasil dari rekaman proses yang saya lakukan :

    Sub Macro1()
    '
    ' Macro1 Macro
    '
    
    '
        Range("A1:C5").Select
        Selection.Font.Bold = True
    End Sub

    Script di atas pada dasarnya akan melakukan proses seleksi terhadap range A1:C5, dan kemudian menebalkan font pada range tersebut. Pada script tersebut, perintah :

    Range("A1:C5").Select

    akan menghasilkan sebuah objek baru yakni Selection yang merupakan Reserverd Object. Object Selection tersebut kemudian digunakan untuk mengaktifkan properti Bold dari objek Font dari setiap sel. Perhatikan objek yang dapat diakses pada object Selection tersebut :

    Range.Font.Bold

    Dengan memahami objek yang dapat diakses pada object Selection tersebut, maka pada dasarnya kita dapat menyederhanakan perintah di atas menjadi :

    Sub Macro1()
        Range("A1:C5").Font.Bold = True
    End Sub

    Masih banyak lagi yang bisa dilakukan untuk memulai mempelajari dan mendalami VBA, misalkan dengan mencoba-coba menyelesaikan sendiri permasalahan yang ditanyakan rekan-rekan di forum ini, kemudian membandingkannya dengan solusi yang sudah ada. Prinsipnya, Learning by Doing...

    Demikian.

  3. Terimakasih banyak master Caton

    saya akan coba pelajari

    Salam,

 

atau Mendaftar untuk ikut berdiskusi!