AUTO RUN Contoh Excel
description
Transcript of AUTO RUN Contoh Excel
AUTO RUN
Ada beberapa cara untuk membuat macros yang kita buat berjalan secara
otomatis ketika pertama kali membukaworkbook. 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-KOPI RANGE
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:= ”[email protected]”
End Sub
FUNGSI EXCEL
Menggunakan fungsi bawaan Excel dalam VBE hampir sama dengan
menggunakannya dalam Excel. Misal fungsi rounduntuk 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
MENUJU RANGE TERTENTU
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
MENGATUR ULANG UKURAN RANGE
Selection.Resize(7,7).Select
MEMBERI NAMA RANGE
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 jam 12:00 dan 16: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
Mengendalikan RangeMengendalikan Range merupakan hal yang penting dalam pemograman VBE. Mari kita
mulai, pertama buatlah sebuah filecontoh.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.
Menggunakan Range dengan Cell
Kita dapat membuat sebuah range pada Excell sebagai “titik pusat” lalu dengan
bantuan Cells(Rowindex, Columnlindex)., kita dapat menempatkan sebuah nilai atau
rumus di sekitar Range 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 dilihat Range(“D5”).Cells(1,1) adalah Range D5 yang menjadi pusat.
Bila Range tidak 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”
Membuat Sebuah Variabel dari Range
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"
Melangkah Lebih Jauh
Di awal tutorial ini penulis telah menyebutkan bahwa WorkSheet (demikian juga
dengan WorkBook) merupakan sebuah obyek dalam Ms Excell. Seperti kita
ketahui, Visual Basic merupakan bahasa pemograman yang berorientasi obyek.
Pada bab-bab sebelumya sebenarnya kita telah membentuk sebuah obyek
bernama "Module1" yang dapat dipanggil dengan menekan Ctrl+q, dan memberinya prosedur
bernama "coba".
Perhatikan ketika kita mengetik "Module1", kemudian mengetik "." Maka akan muncul tampilan
seperti diatas. Sebuah kotak dengan sebuah gambar berwarna hijau dengan tulisan "coba".
Pada penjelasan berikut, kita akan membuat prosedur-prosedur buatan kita sendiri
pada Worksheet dan Workbook. Mengapa? Karena kode-kode program dalam prosedur yang kita
buat di sebuah Worksheet dan Workbook tertentu, hanya akan bekerja
pada Worksheet atau Workbooktersebut. Sedang prosedur yang tertulis pada Modules, bekerja
pada Worksheet dalam Worbook yang aktif.
Sebagai contoh ketikan kode ini dalam prosedur Sub Coba() dalam Module 1:
Range("A1").Value= "coba"
lalu buka contoh.xls-sheet1, jalankan program,
buka contoh.xls-Sheet2, jalankan program,
kemudian sheet3,
Kemudian buat sebuah Workbook baru,
Pada Workbook baru, bernama Book1 ini, buka Sheet1, jalankan program,
Bila Anda melanjutkan pada book1.xls-Sheet2 dan Sheet3, program yang kita buat
pada contoh.xls-Module1 akan dikerjakan pada setiapWorksheet yang aktif,
walapun Worksheet tersebut berada pada Worbook lain.
Hal ini akan merepotkan bila Anda hanya ingin program VBE yang dibuat bekerja
pada Worbook tertentu, sedang dalam pekerjaan Anda sehari-hari Anda harus membuka
banyak Workbook.
Pemograman Sheet
Untuk memulai, masuklah ke dalam Sheet1 dengan cara double klik pada windows project,
tampilan berikut akan muncul ;
Setelah itu buatlah sebuah prosedur bernama lembar1,
lalu isikan kode berikut;
pergi ke Module1, dan isikan kode berikut
Kembali ke Ms. Excell, buka Sheet1, jalankan program dengan menekan Ctrl + q , hasilnya
adalah ;
Hapus kata "lembar1" di Sheet1, kemudian buka Sheet2, kemudian tekan Cttrl + q, dan hasilnya
adalah
range A1 tidak terisi apapun pada Sheet2, bukalah Sheet1 dan Anda akan mendapatkan bahwa
pada range A1 terdapat kata "lembar1".
Membuat Shortkey untuk Program pada Sheet
Untuk membuat Shortcut key dari program yang telah kita buat, maka tekan Alt + F8, atau
menggunakan menu Tools—Macro—Macros
akan tampil
sorot sheet1.lembar, tekan tombol Option,
pada isian Shorcut Key, isikan huruf w.
Kembali ke Excell, dan tekan Ctrl + w, lihat apa yang terjadi.
Menyisipkan Control Object pada WorkSheet
Seperti VB6, pada VBE terdapat pula obyek-obyek kontrol, seperti Command Button, Text
Box, Option Button, Label, dan sebagainya. Tetapi, tidak semua kontrol yang ada di VB6 terdapat di
VBA Excel.
Pertama-tama kita perlu menghidupkan Control Toolbox, dimana terdapat kontrol-kontrol yang kita
perlukan. Untuk itu arahkan kursor ke menuView-Toolbars-Control Toolbox seperti gambar
dibawah,
kemudian tekan dan akan tampil:
Tarik Box tersebut ke arah bawah agar tidak menghalangi WorkSheet,
Untuk menyisipkan kontrol dan merubah-rubah propertinya, maka kita perlu menghidupkan Design
Mode.
tekan gambar segitiga yang memiliki nama Design Mode, sehingga gambar tersebut terlihat terang
sebagai contoh kita akan menyisipkan Command Button di Sheet1,
tekan Icon Command Button pada ToolBox,
lalu kursor akan berubah menjadai tanda "+" , gunakan kursor untuk membentuk sebuah Command
Button dengan cara klik kiri pada mouse.
untuk memasukan kode maka double- clik kiri mouse pada Command Button sehinnga Visual Basic
Editor muncul
masukkan kode yang diinginkan ke dalam
Private Sub CommandButton1_Click()
End Sub
CommandButton1_Click berarti program akan dijalankan pada saat Command Button ditekan.
Seperti terlihat bahwa prosedur ini terdapat di dalam Sheet1, WorkSheet dimana Command
Button disisipkan.
Berikut adalah salah satu contoh program
kembali ke Excel dan maitkan Design Mode dengan cara menekannya, sehingga tampilannya tidak
terang lagi,
lalu tekan Command Button, maka akan tampil :
Kita dapat mengakses properti Command Button, dengan cara menyalakan kembali Design
Mode lalu klik kanan Command Button,
tekan Properties maka akan tampil,
di sisi sebelah kiri akan tampil Windows Properties.
Kita dapat merubah tampilan (Caption) pada Command Button dengan cara merubah
isian Caption di Properties,
atau dengan mengedit Command Button,
bila ditekan, akan tampil
lalu rubahalah Caption-nya,
Menggunakan UserForm
Untuk menggunakan UserForm, pertama sisipkan dahulu obyek ini kedalam project kita.
tampilan berikut akan muncul
selanjutnya Anda dapat melakukan langkah-langkah pemograman seperti di VB6.
Pada contoh berikut kita akan menyisipakan sebuah CommandButton dan sebuah TextBox ke
dalam form kita. Isi dari sebuah range (kita pilihrange A1) di salah satu WorkSheet (pada contoh ini
kita pilih Sheet1) akan sama dengan isi TextBox ketika CommandButton ditekan.
Pertama-tama kita sisipkan sebuah CommandButton dan TextBox pada UserForm,
lalu klik dua kali CommandButton, hingga tampilan berikut muncul
isikan kode berikut
Range("A1").Value = TextBox1.Value
Selanjutnya kembali ke Sheet1 (pada Visual Basi Editor), isikan kode beirkut di Prosedur
"lembar1",
UserForm1.Show
Kode di atas memerintahkan agar UserForm1 muncul
kembali ke Excell, dan tekan Ctrl+w untuk menjalankan Prosedur "lembar1".
isi TextBox dengan kata "sudah" lalu tekan CommandButton1,
Sebagai catatan, karena UserForm muncul maka Anda tidak dapat menggunakan WorkSheet pada
Excel. Bila Anda menginginkan agar, bisa beralih ke WorkSheet, maka kode berikut dapat digunakan
(hanya bekerja pada Excell 2000 ke atas).
UserForm1.Show vbModeless
Bila program kembali dijalankan maka Anda
dapat beralih dari UserForm ke WorkSheet.