Anda di halaman 1dari 19

Auto Run

Adabeberapa cara untuk membuat macros yang kita buat berjalan secara otomatis
ketika pertama kali membuka workbook. Yang pertama adalah Auto Open Method,
yang diletakkan di modules, kedua adalah Workbook Open Method, yang diletakkan
di pada obyek Workbook (lihat penjelasan pada langkah 3). Dua Contoh kode
berikut akan menampilkan pesan hi ketika Workbook pertama kali dibuka.

Sub Auto_Open( )
Msgbox hi
End Sub

Private Sub Workbook_Open( )


Msgbox hi
End Sub

Menghitung Rows, Columns dan Sheet


Kode berikut digunakan untuk menghitung berapa jumlah rows (baris) atau
columns(kolom) yang telah kita sorot dengan kursor.

Sub Hitung( )
hitung_baris = Selection.Rows.Count
hitung_kolom = Selection.Columns.Count
MsgBox hitung_baris & & hitung_kolom
End Sub

Sub hitung_sheet( )
hitung_sheet = Application.Sheets.Count
Msgbox hitung_sheet
End Sub

Meng-kopiRange
Contoh berikut akan meng-kopi range A1 sampai A3 ke D1 sampai D3

Sub Kopi_Range( )
Range (A1:A3).Copy Destination:=Range(D1:D3)
End Sub

Waktu Sekarang
Contoh berikut akan menampilkan waktu pada saat ini
Sub sekarang( )
Range (A1)= Now
End Sub

Mengetahui Posisi Sel yang Sedang Aktif


Sub posisi( )
baris = ActiveCell.Row
kolom = ActiveCell.Column
Msgbox baris & , & kolom
End Sub

Menghapus Baris yang Kosong


Sub hapus_baris_kosong( )
Rng = Selection.Rows.Count
ActiveCell.Offset(0, 0).Select
For i = 1 To Rng
If ActiveCell.Value = Then
Selection.EntireRow.Delete
Else
ActiveCell.Offset(1, 0).Select
End If
Next I
End Sub

Menebalkan dan Mewarnai Huruf (Font)

Contoh berikut akan menebalkan dan memberi warna merah pada huruf dimana sel
sedang aktif.
Sub tebal_merah( )
Selection.Font.Bold = True
Selection.Font.ColorIndex = 3
End Sub

Mengirimkan Workbook melalui Email


Sub email( )
ActiveWorkbook.SendMail recipients:= excel@ahoo.c
End Sub

Fungsi Excel
Menggunakan fungsi bawaan Excel dalam VBE hampir sama dengan
menggunakannya dalam Excel. Misal fungsi round untuk membulatkan sebuah
angka, dalam spreadsheet akan terlihat seperti ini
= round(1.2367, 2)
Dalam VBE Anda cukup menggunakan Application kemudian disusul fungsi yang
akan dipakai.
Sub bulat( )
ActiveCell = Application.Round(ActiveCell, 2)
End Sub
Menghapus Nama-Nama Range
Contoh berikut akan menghapus semua nama-nama range di dalam workbook Anda
Sub hapus_nama_range( )
Dim NameX As Name
For Each NameX In Names
ActiveWorkbook.Names(NameX.Name).Delete
Next NameX
End Sub
Layar Berkedip
Program dalam macros yang sedang berjalan dapat membuat layar berkedip-kedip,
untuk menghentikannya Anda dapat menyisipkan kode berikut.

Application.ScreenUpdating = False

MenujuRangeTertentu
Untuk menuju suatu range tertentu, kode-kode berikut dapat digunakan.
Application.Goto Reference:=A1
Atau,
Range(A1).Select

Menuju Sheet tertentu


Sedangkan untuk menuju worksheet tertentu, gunakan kode-kode berikut.
Sheets(1).Select
Atau
Sheet1.Select
Untuk menuju Sheet terdepan (nomor 1)
Sheet(coba).Select
Untuk menuju Sheet bernama coba

Menyembunyikan WorkSheet
Kode berikut berfungsi untuk menyembunyikan Sheet1
Sheet1.Visible = xlSheetVeryHidden
Pengguna tidak dapat membuka sheet yang telah disembunyikan dengan cara ini,
hanya dengan kode VBE sheet dapat dibuka kembali.

Input Box
Kode berikut berguna untuk memunculkan Input Box
InputBox(Masukkan Nama)

Menyisipkan Baris dan Kolom


Kode berikut akan menyisipkan baris diatas range A1,
Range(A1).Select
Selection.EntireRow.Insert

Sedang yang berikut akan menyisipkan satu kolom disamping kiri range A1,
Range(A1).Select
Selection.EntireColumn.Insert

MengaturUlangUkuranRange
Selection.Resize(7,7).Select

MemberiNamaRange
Selection.Name = nama

Menyimpan File
Kode berikut berguna untuk menyimpan file tanpa memberi nama,
ActiveWorkbook.Save
Sedangkan bila Anda hendak memberi nama (SaveAs), gunakan kode berikut,
ActiveWorkbook.SaveAs Filename:=C:\coba.xls
Penjadwalan
Kadang-kadang kita hendak menjadwalkan sebuah tugas kepada Excel, contohnya
menyimpan file pada jam-jam tertentu. VBE dapat melakukannya dengan
menggunakan fungsi Application.OnTime. Sebagai contoh, kode dibawah ini akan
menjalankan prosedur Simpan( ) pada jam12:00 dan16:00, prosedur Simpan( )
sendiri berisi perintah untuk menyimpan file,
Sub tugas()
Application.OnTime TimeValue(12:00:00), Simpan
Application.OnTime TimeValue(16:00:00), Simpan
End Sub

Sub Simpan()
ActiveWorkbook.Save
End Sub
Bila Anda hendak merubah jamnya, missal jam 10:03:05, maka rubah TimeValue
menjadi TimeValue(10:03:05).
Sedangkan bila Anda hendak melakukannya satu jam setelah prosedur tugas( )
dijalankan maka rubahlah kodenya seperti demikian,

Sub tugas()
Application.OnTime Now + TimeValue(01:00:00), Simpan
End Sub

Perhatikan penambahan kata Now. Kode-kode di atas bekerja bila disimpan dalam
module, bula Anda ingin menyimpannya di dalam Sheet1 (atau worksheet
manapun), maka rubahlah Simpan menjadi Sheet1.Simpan
Desember 17, 2011 Posted by Nass | VB-Excel | Tinggalkan komentar
Mengendalikan Range

Rate This

MengendalikanRangemerupakan hal yang penting dalam pemograman VBE. Mari


kita mulai, pertama buatlah sebuah file contoh.xls. Kemudian buatlah sebuah
makro dengan cara Record New Maro,

beri nama macro tersebut dengan nama Coba, dan shortkey tombol q di keyboard
Anda.

ketikan kata coba pada range A1

lalu Stop Recording Macro

Lihat hasil pencatatan pada Visual Basic Editor Excell Anda,

kode Macros akan tertulis pada module1,

Range(A1).Select
Merupakan perintah pada VB Excell untuk memilih range A1, bila A1 diubah
menjadi A4 maka kata coba akan dituliskan pada range A4.
ActiveCell.FormulaR1C1 = coba
Berarti pada sel aktif yang telah dipilih (select) rumus (Formula) coba akan
dituliskan. Activecell sendiri menunjuk pada sel dimana kursor aktif.

Rangkaian kode di atas dapat disederhanakan dengan kode seperti berikut ;

bila dijalankan, maka kode ini akan menghasilkan yang sama dengan sebelumnya.

MenggunakanRangedengan Cell
Kita dapat membuat sebuah range pada Excell sebagai titik pusat lalu dengan
bantuan Cells(Rowindex, Columnlindex)., kita dapat menempatkan sebuah nilai
atau rumus disekitarRange yang menjadi pusat. Sebagai contoh tuliskan kode ini
pada Sub Coba()
Range(D5).Cells(1, 1).Value = pusat
Range(D5).Cells(0, 1).Value = atas
Range(D5).Cells(2, 1).Value = bawah
Range(D5).Cells(1, 0).Value = kanan
Range(D5).Cells(1, 2).Value = kiri

jalankan program, maka hasilnya akan seperti demikian;

dapat dilihatRange(D5).Cells(1,1) adalah Range D5 yang menjadi pusat.


BilaRangetidak disebutkan maka secara default , Range yang menjadi titik pusat
adalah Range A1. Anda harus berhati-hati ketika memilih range-range yang berada
di tepi, seperti A1, A2, B1, C1, dst. Sebab tidak ada lagi range di atas atau di tepi
kanan range-range tersebut.

Bila kita menginginkan sel yang menjadi titik pusat adalah sel dimana kursor aktif,
maka kode berikut dapat digunakan
ActiveCell.Offset(0, 0).Value = pusat
ActiveCell.Offset(0, 1).Value = kiri
ActiveCell.Offset(0, -1).Value = kanan
ActiveCell.Offset(1, 0).Value = bawah
ActiveCell.Offset(-1, 0).Value = atas

buka Sheet1, pilih Range D5

lalu tekan Ctrl +q, maka akan menghasilkan

kemudian pilih range H15, tekan Ctrl+q maka akan dihasilkan,

Selain dengan kode diatas, terdapat cara lain

bila dijalankan maka hasil yang sama akan didapatkan.


Menunjuk sel pada worksheet tertentu
Karena ditulis di module maka kode-kode diatas bekerja pada Worksheet yang aktif.
Artinya bila Sheet1 yang sedang tebuka maka program aka dijalankan pada
Sheet1. Bagaimana bila kita menginginkan agar range yang ditunjuk berada di
dalam sheet tertentu. Caranya cukup dengan menuliskan nama worksheet di depan
range, sebagai contoh:
Sheet1.Range(A1).value=oke
Akan mengacu pada range A1 pada Worksheet Sheet1, bila kita menginginkan
agar range A1 pada Sheet2 maka ganti kode sebelumnya dengan:
Sheet2.Range(A1).value=oke
Cara penulisan lain juga dapat dilakukan, contohnya:
Set Pesan = Sheets(sheet3).Range(A1)
Set Pesan = Sheets(2).Range(A1)

Multiple Range
Kita sudah mempelajari bagaimana menujuk sebuah range tunggal sebagai sasaran
pemograman. Sekarang bagaimana bila kita menginginkan multiple range.
Range (A1:C3).value = oke
Range(A1,D4).value = oke2
Kode-kode di atas menunjuk pada multiple range. Pada kode pertama yang ditunjuk
adalah range A1 sampai C3, sedanga yang kedua adalah A1 sampai D4.
Range Bernama

Bagi Anda yang sering menggunakan Excel, mungkin sering memberi nama pada
sebuah range untuk mempermudah pekerjaan. Pertanyaan dapatkah menunjuk
range bernama tersebut dalam VB Excel ? jawabannya, DAPAT!!
Misalkan Anda memiliki sebuah range yang bernama sel, maka range ini dapat
ditunjuk dengan kode Range (sel), sebagai contoh:
Range (sel).value = ini sel
MembuatSebuahVariabeldariRange
Membentuk sebuah variabel dari range sangatlah mudah pada VBE. Tujuannya agar
mempermudah dalam pemograman. Pertama kita harus membuat dimensinya
terlebih dahulu, caranya dengan menuliskan kode seperti ini:
Dim Pesan As Range
Kemudian kita set variabel tersebut, sesuai dengan range yang kita inginkan ;
Set Pesan = Range(A1)
Atau
Set Pesan = Range(A1).Cells(1, 2)
atau
Set Pesan = Sheet1.Range(A1)
atau
Set Pesan = Sheets(Sheet3).Range(A1)
Kemudian kita dapat melakukan operasi range pada variabel yang telah dibentuk.
Sebagai contoh
Dim Pesan As Range
Set Pesan = Sheet1.Range(A1)
Pesan.Value = pesan nih
Pesan(1, 2).Value = pesan kedua
Range A1 pada Sheet1 akan tertulis pesan nih dan range A2 akan tertulis pesan
kedua. Sebab Pesan(1,2) sama dengan Sheet1.Range(A1).Cells(1,2).
Sebenarnya kita dapat membentuk variabel tanpa membuat dimensinya terlebih
dahulu, tetapi cara ini idak dianjurkan karena memboroskan memori. Caranya
adalah seperti demikian:
Set Pesan = Sheet1.Range(A1)
Pada kasus ini perintah-perintah berikut bisa bekerja,
Pesan.Value = pesan nih
Pesan(1, 2).Value = pesan kedua

Memulai Makro Excel

Rate This

Untuk membuat Makro Excel Anda harus membuka sebuah file Microsoft
Excel(contohnya book1.xls). Selanjutnya Anda dapat membuat Makro dengan
beberapa cara :
1. Create Macro (Alt + F8)
Pertama- tama buatlah dan bukalah sebuah file Excell bernama contoh.xls. Pada
menu Tools, tunjuk Macro lalu tunjuk Macros
, kemudian klik kiri Mouse (atau tekan Alt +F8),

sehingga muncul tampilan seperti berikut,

Ketikan nama Makro yang dikehendaki pada isian Macro name, contohnya : coba.
Maka akan tombol create akan aktif

tekan tombol create, sehingga tampilan berikut akan muncul

maka Anda telah membuat sebuah Modul Visual Basic Aplication (VBA) bernama
Module1 dan sebuah prosedur VBA bernama coba ().
Anda dapat memilih agar Makro ini bekerja di seluruh file Excel yang terbuka (All
Open Workbooks), hanya pada file yang sedang Anda buka (This Workbooks),
atau pada file contoh.xls, file Excell dimana Anda membuat Makro-nya. Dengan
cara memilih pilihan tersebut pada Macros In.

2. Record New Macro


Cara kedua ini merupakan favorit penulis, sebab dengan cara ini kita dapat
membuat kode visual basic tanpa harus menuliskannya. Pada dasarnya, semua
operasi Excell dapat dilakukan oleh Macros. Operasi itu dapat dicatat oleh Macros
melalui Record New Macros. Kemudian kita dapat mengubah kode-kode VBA yang
dihasilkan oleh operasi yang tercatat tersebut.
Untuk memulai mencatat Makro maka pada menu Tools, sorot Macro kemudian
sorot Record New Macros lalu klik kiri Mouse,

sehingga tampilan berikut muncul,

Kolom isian Macro name: dimana Anda mengisikan nama Macro. Kolom
Shortcut key bila Anda hendak membuat shortcut key dari keyboard (Ctrl+
tombol keypad yang Anda inginkan). Store Macro in merupakan kolom isian
untuk menentukan dimana macro akan disimpan, pilihannya adalah This Workbook,
New Workbook dan Personal Macro Workbook
. Dan kolom Description, bila Anda ingin memberi penjelasan singkat mengenai
Macro yang akan Anda catat.
Sebagai contoh, kita akan mencatat Macro bernama ok, yang mencatat operasi
Excell berupa pengisian sel A1 dengan kata ok, dan mempunyai shortcut key Ctrl
+ q.
Pertama-tama lakukan langkah-langkah yang telah disebutkan sehingga muncul
tampilan sebagai berikut,

lalu tekan tombol OK.

Pencatatan sedang dilakukan, isilah sel A1 dengan kata ok, lalu pada Menu Tools,
sorot Macro, kemudian tekan Stop Recording dan pencatatan akan berhenti

Untuk melihat kode VBA yang telah tercatat, pada menu Tools sorot Macro, sorot
Macros.

Pilihlah ok pada Macro name: lalu tekan tombol Edit, sehingga akan muncul
tampilan sebagai berikut,

Cobalah merubah Range(A1) menjadi Range(A2), simpan dengan menekan


gambar disket atau Ctrl + S. Kembali ke contoh.xls, tekan Ctrl + q dari Keyboard,
dan lihat apa yang terjadi.
3. Visual Basic Editor (Alt +F11)
Bila Anda sudah mengenal pemograman Visual BASIC, maka cara ini tidaklah sulit.
Bahkan kadang-kadang Anda akan sering melakukannya. Untuk menampilkan
Visual Basic Editor Anda cukup menekan Alt+F11 maka tampilan berikut akan
muncul,

selanjutanya Anda bisa menyisipkan Module, ClassModule dan UserForm, dan


mulai melakukan pemograman seperti yang Anda lakukan di VB6. Seperti Anda
lihat lembar kerja (WorkSheet) pada Excell merupakan Objek di VBE.
http://belajar-vbe.blogspot.com/

Anda mungkin juga menyukai