AUTO RUN Contoh Excel

36
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

description

autorun

Transcript of AUTO RUN Contoh Excel

Page 1: 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

Page 2: AUTO RUN Contoh Excel

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

Page 3: AUTO RUN Contoh Excel

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

Page 4: AUTO RUN Contoh Excel

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

Page 5: AUTO RUN Contoh Excel

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

Page 7: AUTO RUN Contoh Excel

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.

Page 8: AUTO RUN Contoh Excel

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"

Page 9: AUTO RUN Contoh Excel

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.

Page 10: AUTO RUN Contoh Excel

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

Page 12: AUTO RUN Contoh Excel

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”

Page 13: AUTO RUN Contoh Excel

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:

Page 14: AUTO RUN Contoh Excel

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"

Page 15: AUTO RUN Contoh Excel

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"

Page 18: AUTO RUN Contoh Excel

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 ;

Page 19: AUTO RUN Contoh Excel

Setelah itu buatlah sebuah prosedur bernama lembar1, 

lalu isikan kode berikut;

pergi ke Module1, dan isikan kode berikut 

Page 20: AUTO RUN Contoh Excel

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

Page 21: AUTO RUN Contoh Excel

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 

Page 22: AUTO RUN Contoh Excel

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, 

Page 24: AUTO RUN Contoh Excel

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, 

Page 25: AUTO RUN Contoh Excel

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. 

Page 26: AUTO RUN Contoh Excel

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

Page 27: AUTO RUN Contoh Excel

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,

Page 28: AUTO RUN Contoh Excel

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, 

Page 30: AUTO RUN Contoh Excel

Menggunakan UserForm 

Untuk menggunakan UserForm, pertama sisipkan dahulu obyek ini kedalam project kita. 

tampilan berikut akan muncul 

Page 31: AUTO RUN Contoh Excel

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 

Page 32: AUTO RUN Contoh Excel

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

Page 34: AUTO RUN Contoh Excel

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.