
Visual Basic for Applications (VBA) adalah sebuah turunan bahasa pemrograman Visual Basic yang dikembangkan oleh Microsoft dan dirilis pada tahun 1993, atau kombinasi yang terintegrasi antara lingkungan pemrograman(Visual Basic Editor)dengan bahasa pemrograman(Visual Basic)yang memudahkan user untuk mendesain dan membangun program Visual Basic dalam aplikasi utama Microsoft Office, yang ditujukan untuk aplikasi-aplikasi tertentu. VBA didesain untuk melakukan beberapa tugas, seperti halnya mengkustomisasi sebuah aplikasi layaknya Microsoft Office atau Microsoft Visual Studio. Kegunaan VBA adalah mengotomatisasi pekerjaan. Pekerjaan yang dimaksud adalah pekerjaan yang dilakukan secara berulang-ulang dan pekerjaan yang kompleks. VBA berbeda dengan Microsoft Visual Basic, Microsoft Visual Basic memberi banyak pemrograman dan fungsi tingkat lanjut hingga Microsoft Visual Basic dapat dihasilkan program yang lebih kompleks untuk sistem operasi Microsoft Windows maupun Office. Sedangkan VBA hanya dapat dibangun pada aplikasi utama Microsoft Office mengendalikan fungsi aplikasi tersebut melakukan serangkaian objek terprogram. Versi VBA terbaru saat ini adalah versi 6.3 yang dirilis pada tahun 2001, yang mendukung semua program dalam Microsoft Office, yakni Microsoft Excel, Microsoft Access, Microsoft Word, Microsoft Outlook, Microsoft FrontPage, serta Microsoft PowerPoint dan juga Microsoft Visual Studio.
- Membuka VBA. Setelah membuka MS. Excel langsung saja tekan kombinasi pada keyboard yaitu tombol ALT + F11. Lalu akan muncul tampilan seperti ini.
2. Membuat suatu UserForm. Membuat userform cukup dengan membuka menu insert lalu klik UserForm. UserForm adalah basis kita untuk membuat VBAnya seperti kanvas untuk melukis. Kita dapat mengeditnya sesuai keinginan.
3 3. Membuat Label
Cara membuat label adalah dengan menggunakan Toolbox yang ada disebelah Userform kita.
Lalu ganti caption pada label dengan mengklik tulisan “label 1” sekali dan buatlah label lagi sampai terbentuk menjadi seperti ini :
4. 4. Membuat TextBox
Selanjutnya ialah membuat textbox sebagai field yang akan diisikan pada saat proses entry datanya. Untuk membuat textbox bisa mengklik pada toolbox dan menyeret pada userform. Jangan lupa mengganti nama textbox sesuai label yang diisi misalnya untuk NIS dapat diganti dengan “TXTNis”.
Lalu buat lah textbox sesuai yang diinginkan
Dan gantilah setiap nama dari textbox susai dengan Label yang telah dibuat. Hal ini juga bertujuan untuk memudahkan membuat code pada userform.
Textbox1 ganti dengan TXTNis
Textbox2 ganti dengan TXTNama
Textbox3 ganti dengan TXTTempatLahir
Textbox4 ganti dengan TXTTglLahir
Textbox5 ganti dengan TXTALamat
Textbox6 ganti dengan TXTNISN
Textbox7 ganti dengan TXTHP
Textbox8 ganti dengan TXTSKHUN
Textbox9 ganti dengan TXTIjasah
Textbox10 ganti dengan TXTNamaIbu
Textbox11 ganti dengan TXTThnLahirIbu
Textbox12 ganti dengan TXTPekIbu
Textbox13 ganti dengan TXTNamaAyah
Textbox14 ganti dengan TXTThnAyah
Textbox15 ganti dengan TXTPekAyah
Textbox16 ganti dengan TXTPengAyah
Textbox17 ganti dengan TXTAlamatOrtu
5. 5. Membuat ComboBox
ComboBox adalah suatu field pengisian data tetapi telah disediakan beberapa opsi atau pilihan yang tinggal kita pilih. Cara membuatnya tinggal mengklik combobox pada ToolBox dan menyeretnya ke userform. Pada contoh kali ini kita gunakan untuk memasukan data “Jenis Kelamin” dan “Pendidikan”.
Nah kalau sudah dibuat ganti nama combobox sesuai label
ComboBox1 ganti dengan CBO CBOKelamin
ComboBox2 ganti dengan CBO CBOPendidikanIbu
ComboBox3 ganti dengan CBO CBOPendidikanAyah
Hasil akhir dari UserFormnya kira-kira seperti ini
6. 6. Membuat CommandButton
CommandButton adalah tombol yang memberikan instruksi sesuai script yang dibuat.kita dapat membuat commandbutton melalui ToolBox dan menyeretnya ke userform.
Buatlah seperti gambar diatas dan ganti namanya menjadi "TBLSimpan", "TBLCariData", CMDClose".
7. 7. Membuat Script VBA
Nah pada tahap ini kita akan membuat script atau barisan bahasa pemograman yang berisi perintah untuk melakukan sesuatu.
Silahkan buka tampilan scriptnya dengan meng klik kanan pada userform dan klik view code. Akan tampil seperti berikut.
kemudian tuliskan script berikut untuk membuat initial pada UserForm
Private Sub UserForm_Initialize()With CBOKelamin .AddItem "Laki-Laki" .AddItem "Perempuan"End WithWith CBOPendidikanIbu .AddItem "Tidak Sekolah" .AddItem "SD" .AddItem "SMP" .AddItem "SMA" .AddItem "D1" .AddItem "D2" .AddItem "D3" .AddItem "S1" .AddItem "S2" .AddItem "S3"End WithWith CBOPendidikanAyah .AddItem "Tidak Sekolah" .AddItem "SD" .AddItem "SMP" .AddItem "SMA" .AddItem "D1" .AddItem "D2" .AddItem "D3" .AddItem "S1" .AddItem "S2" .AddItem "S3"End WithEnd Sub
Selanjutnya kita akan membuat sebuah script VBA untuk simpan data siswa silakan ketikkan script VBA nya di bawah iniPrivate Sub TBLSimpan_Click()Dim iRow As LongDim Ws As WorksheetSet Ws = Worksheets("databasesiswa")
'menemukan baris kosong pada database siswaiRow = Ws.Cells(Rows.Count, 1) _ .End(xlUp).Offset(1, 0).Row
'check untuk sebuah nisIf Trim(Me.TXTNis.Value) = "" Then Me.TXTNis.SetFocus MsgBox "Masukan NIS terlebih dahulu Kang.." Exit SubEnd If
'copy data ke database siswaWs.Cells(iRow, 1).Value = Range("X1").ValueWs.Cells(iRow, 2).Value = Me.TXTNis.ValueWs.Cells(iRow, 3).Value = Me.TXTNama.ValueWs.Cells(iRow, 4).Value = Me.TXTTempatLahir.ValueWs.Cells(iRow, 5).Value = Me.TXTTglLahir.ValueWs.Cells(iRow, 6).Value = Me.CBOKelamin.ValueWs.Cells(iRow, 7).Value = Me.TXTAlamat.ValueWs.Cells(iRow, 8).Value = Me.TXTNISN.ValueWs.Cells(iRow, 9).Value = Me.TXTHP.ValueWs.Cells(iRow, 10).Value = Me.TXTSKHUN.ValueWs.Cells(iRow, 11).Value = Me.TXTIjasah.ValueWs.Cells(iRow, 12).Value = Me.TXTNamaIbu.ValueWs.Cells(iRow, 13).Value = Me.TXTThnLahirIbu.ValueWs.Cells(iRow, 14).Value = Me.TXTPekIbu.ValueWs.Cells(iRow, 15).Value = Me.CBOPendidikanIbu.ValueWs.Cells(iRow, 16).Value = Me.TXTNamaAyah.ValueWs.Cells(iRow, 17).Value = Me.TXTThnAyah.ValueWs.Cells(iRow, 18).Value = Me.TXTPekAyah.ValueWs.Cells(iRow, 19).Value = Me.CBOPendidikanAyah.ValueWs.Cells(iRow, 20).Value = Me.TXTPengAyah.ValueWs.Cells(iRow, 21).Value = Me.TXTAlamat.Value
'clear data siswaMe.TXTNis.Value = ""Me.TXTNama.Value = ""Me.TXTTempatLahir.Value = ""Me.TXTTglLahir.Value = ""Me.CBOKelamin.Value = ""Me.TXTAlamat.Value = ""Me.TXTNISN.Value = ""Me.TXTHP.Value = ""Me.TXTSKHUN.Value = ""Me.TXTIjasah.Value = ""Me.TXTNamaIbu.Value = ""Me.TXTThnLahirIbu.Value = ""Me.TXTPekIbu.Value = ""Me.CBOPendidikanIbu.Value = ""Me.TXTNamaAyah.Value = ""Me.TXTThnAyah.Value = ""Me.TXTPekAyah.Value = ""Me.CBOPendidikanAyah.Value = ""Me.TXTPengAyah.Value = ""Me.TXTAlamatOrtu.Value = ""Me.TXTNis.SetFocus
'Simpan dataApplication.ActiveWorkbook.SaveEnd Sub
Membuat perintah CLOSE silakan ketikkan script nya dibawah ini dengan cara double klik tombol CLOSE
Private Sub CMDClose_Click()Unload MeEnd Sub
Membuat sebuah validasi data untuk textbox yang berisi data angka agar data yang diinput hanya berupa data angka buka hurfu. Apabila data yang dimasukan pada textbox bukan berupa data angka maka secara otomatis akan menampilkan pesan error dan ini dia script nya
Private Sub HanyaAngka() If TypeName(Me.ActiveControl) = "TextBox" Then With Me.ActiveControl If Not IsNumeric(.Value) And .Value <> vbNullString Then MsgBox "Maaf, Masukan data angka saja" .Value = vbNullString End If End With End IfEnd Sub
Anda bisa menggunakan variasi apabila ketika textbox aktif atau dipilih maka warna akan berubah. Ini dia script nya. Script ini juga akan menghasilkan perintah error yang merupakan pemanggilan prosedur dari tahap diatas.
Private Sub TXTNISN_Change()HanyaAngkaEnd Sub
Private Sub TXTHP_Change()HanyaAngkaEnd Sub
Private Sub txtnis_Enter()TXTNis.BackColor = &H80000005End SubPrivate Sub txtnis_Exit(ByVal Cancel As MSForms.ReturnBoolean)HanyaAngkaTXTNis.BackColor = &HE0E0E0End Sub
Private Sub txtnama_enter()TXTNama.BackColor = &H80000005End SubPrivate Sub txtnama_Exit(ByVal Cancel As MSForms.ReturnBoolean)TXTNama.BackColor = &HE0E0E0End Sub
Private Sub txttempatlahir_enter()TXTTempatLahir.BackColor = &H80000005End SubPrivate Sub txttempatlahir_Exit(ByVal Cancel As MSForms.ReturnBoolean)TXTTempatLahir.BackColor = &HE0E0E0End Sub
Private Sub txttgllahir_enter()TXTTglLahir.BackColor = &H80000005End SubPrivate Sub txttgllahir_Exit(ByVal Cancel As MSForms.ReturnBoolean)TXTTglLahir.BackColor = &HE0E0E0End Sub
Private Sub txtalamat_Enter()TXTAlamat.BackColor = &H80000005End SubPrivate Sub txtalamat_Exit(ByVal Cancel As MSForms.ReturnBoolean)TXTAlamat.BackColor = &HE0E0E0End Sub
Private Sub cbokelamin_Enter()CBOKelamin.BackColor = &H80000005End SubPrivate Sub cbokelamin_Exit(ByVal Cancel As MSForms.ReturnBoolean)CBOKelamin.BackColor = &HE0E0E0End Sub
Private Sub txtnisn_Enter()TXTNISN.BackColor = &H80000005End SubPrivate Sub txtnisn_Exit(ByVal Cancel As MSForms.ReturnBoolean)TXTNISN.BackColor = &HE0E0E0End Sub
Private Sub txthp_Enter()TXTHP.BackColor = &H80000005End SubPrivate Sub txthp_Exit(ByVal Cancel As MSForms.ReturnBoolean)TXTHP.BackColor = &HE0E0E0End Sub
Private Sub txtskhun_Enter()TXTSKHUN.BackColor = &H80000005End SubPrivate Sub txtskhun_Exit(ByVal Cancel As MSForms.ReturnBoolean)TXTSKHUN.BackColor = &HE0E0E0End Sub
Private Sub txtijasah_Enter()TXTIjasah.BackColor = &H80000005End SubPrivate Sub txtijasah_Exit(ByVal Cancel As MSForms.ReturnBoolean)TXTIjasah.BackColor = &HE0E0E0End Sub
Private Sub txtnamaibu_Enter()TXTNamaIbu.BackColor = &H80000005End SubPrivate Sub txtnamaibu_Exit(ByVal Cancel As MSForms.ReturnBoolean)TXTNamaIbu.BackColor = &HE0E0E0End Sub
Private Sub txtthnlahiribu_Enter()TXTThnLahirIbu.BackColor = &H80000005End SubPrivate Sub txtthnlahiribu_Exit(ByVal Cancel As MSForms.ReturnBoolean)TXTThnLahirIbu.BackColor = &HE0E0E0End Sub
Private Sub txtpekibu_Enter()TXTPekIbu.BackColor = &H80000005End SubPrivate Sub txtpekibu_Exit(ByVal Cancel As MSForms.ReturnBoolean)TXTPekIbu.BackColor = &HE0E0E0End Sub
Private Sub cbopendidikanibu_Enter()CBOPendidikanIbu.BackColor = &H80000005End SubPrivate Sub cbopendidikanibu_Exit(ByVal Cancel As MSForms.ReturnBoolean)CBOPendidikanIbu.BackColor = &HE0E0E0End Sub
Private Sub txtnamaayah_Enter()TXTNamaAyah.BackColor = &H80000005End SubPrivate Sub txtnamaayah_Exit(ByVal Cancel As MSForms.ReturnBoolean)TXTNamaAyah.BackColor = &HE0E0E0End Sub
Private Sub txtthnayah_Enter()TXTThnAyah.BackColor = &H80000005End SubPrivate Sub txtthnayah_Exit(ByVal Cancel As MSForms.ReturnBoolean)TXTThnAyah.BackColor = &HE0E0E0End Sub
Private Sub txtpekayah_Enter()TXTPekAyah.BackColor = &H80000005End SubPrivate Sub txtpekayah_Exit(ByVal Cancel As MSForms.ReturnBoolean)TXTPekAyah.BackColor = &HE0E0E0End Sub
Private Sub cbopendidikanayah_Enter()CBOPendidikanAyah.BackColor = &H80000005End SubPrivate Sub cbopendidikanayah_Exit(ByVal Cancel As MSForms.ReturnBoolean)CBOPendidikanAyah.BackColor = &HE0E0E0End Sub
Private Sub txtpengayah_Enter()TXTPengAyah.BackColor = &H80000005End SubPrivate Sub txtpengayah_Exit(ByVal Cancel As MSForms.ReturnBoolean)TXTPengAyah.BackColor = &HE0E0E0End Sub
Private Sub txtalamatortu_Enter()TXTAlamatOrtu.BackColor = &H80000005End SubPrivate Sub txtalamatortu_Exit(ByVal Cancel As MSForms.ReturnBoolean)TXTAlamatOrtu.BackColor = &HE0E0E0End Sub
8. Membuat WorkSheet sebagai penyimpan data
Untuk tahap terakhir silakan buat sebuah Worksheet untuk menyimpan database yang telah disimpan apabila menekan tombol simpan data maka data siswa akan tersimpan pada sheet yang telah ditentukan misalnya saya ganti sheet untuk menyimpan database dengan nama "DatabaseSiswa"
Selesai !!
Sudah selesai tahapan pembuatan Visual Basic Application dengan menggunakan Macro pada MS.Excell
Silahkan klik RUN untuk mencoba menggunaka VBA nya.
Jangan lupa save file Macronya dengan mengganti formatnya menjadi seperti ini
Agar pada saat kita ingin membuka lagi dapat tertera juga macro yang kita buat.