Bulan: September 2012

Tip Mempercepat Kerja Macro Excel

Ada beberapa tip untuk mempercepat kinerja macro excel yang saya dapat dari web ini. Tulisannya saya modifikasi sedikit dengan data kurang lebih sama.

Tip ke-1: >> Application.ScreenUpdating = False perintah ini membuat proses macro Excel berjalan tanpa memperlihatkan perubahan yang terjadi pada layar Excel. Selama proses macro berjalan, tampilan window Excel tidak akan berubah sampai nanti proses macro ini selesai.

Sebagai contoh, bandingkan 2 kode macro ini dari segi kecepatan.
‘tanpa Application.ScreenUpdating
Sub Macro1()
  For i = 1 to 20000 step 1
     Cells(i,2) = i
  Next i
End Sub
‘dengan Application.ScreenUpdating
Sub Macro2()
Application.ScreenUpdating = False
  For i = 1 to 20000 step 1
     Cells(i,2) = i
  Next i
End Sub
Contoh file yang menggunakan  Application.ScreenUpdating = False  dapat didownload pada file berikut ini: Download di Sini
File di atas adalah file yang berfungsi merekap semua yang terdapat dalam berbagai sheet dan dimasukkan hanya pada 1 sheet saja.  Data Sheet1+Sheet2+Sheet3 —>> Sheetkombinasi

Tip ke-2: >>  Hindari perintah Select,  Sewaktu mengolah Cells di Excel, sebaiknya hindari perintah Select, yang mana dengan perintah ini maka komputer akan mengalokasikan sebagian memory untuk memindahkan kursor kelokasi cell yang di “select”, dan ini berarti butuh sejumlah memory untuk merubah tampilan layar aplikasi Excel, Misalkan:

Cells(3,4).Select
Selection.Interior.ColorIndex = 30
Bisa dibuat menjadi
Cells(3,4).Interior.ColorIndex = 30
Bandingkan 2 contoh kode berikut ini:
‘dengan perintah select
Sub Macro1()
  For i = 1 to 20000 step 1
     Cells(i,2).select
     Selection.Value = i
  Next i
End Sub
 ‘tanpa perintah select
Sub Macro1()
  For i = 1 to 20000 step 1
     Cells(i,2).Value = i
  Next i
End Sub

Tip ke-3: >>  Gunakan Matriks / Array

Untuk pengolahan data dalam jumlah besar, gunakan Array atau Matriks. Jadi data yang ada dalam file Excel dicopy terlebih dahulu menjadi sebuah database Array,