Sering sekali Aplikasi VBA Excel terlihat lebih lambat dalam beroperasi dan menjalankan prosesnya. Ini disebabkan oleh berapa filtur yang bekerja otomatis saat Excel dijalankan. Ditambah lagi dengan jumlah data yang banyak sehingga beban aplikasi semakin banyak.
Aplikasi yang lambat akan menghambat pekerjaan. Pekerjaan yang seharusnya dapat diselesaikan dengan cepat namun selesai diluar jadwal seharusnya. Setiap pengguna aplikasi sangat menginginkan aplikasi yang dipakainya merupakan aplikasi yang bekerja secara cepat.
Kita perlu Optimalkan kode VBA untuk menjalankan macro lebih cepat saat menjalankan VBA makro agar pemrograman VBA lebih efisien, menghasilkan kualitas yang baik dari output, untuk menghemat waktu, dan akan terlihat lebih profesional.
Berikut Teknik Mempercepat Proses Menjalankan Aplikasi VBA Excel :
- Turn off Screen Updating
Application.ScreenUpdating = False
'.........Kode yang akan dijalankan.........
Application.ScreenUpdating = True
'.........Kode yang akan dijalankan.........
Application.ScreenUpdating = True
- Turn off �Automatic Calculations�
Application.Calculation = xlCalculationManual
'.........Kode yang akan dijalankan.........
Application.Calculation = xlCalculationAutomatic
'.........Kode yang akan dijalankan.........
Application.Calculation = xlCalculationAutomatic
- Disable Events
Application.EnableEvents = False
'.........Kode yang akan dijalankan.........
Application.EnableEvents = True
'.........Kode yang akan dijalankan.........
Application.EnableEvents = True
- Menggunakan �WITH� Statement
With Worksheets("Sheet1").Range("A1")
.Value = 100
.Font.Bold = True
End With
.Value = 100
.Font.Bold = True
End With
- Hindari Recording Macro
Sub Macro1()
' Macro1 Macro
Range("D6").Select
Selection.Font.Bold = True
With Selection.Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.Color = 65535
.TintAndShade = 0
.PatternTintAndShade = 0
End With
End Sub
' Macro1 Macro
Range("D6").Select
Selection.Font.Bold = True
With Selection.Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.Color = 65535
.TintAndShade = 0
.PatternTintAndShade = 0
End With
End Sub
Sementara jika kita menghindari Recording Macro agar kecepatan aplikasi meningkat maka kode VBA ditulis sebagai berikut :
Sub Change_Cell_Font()
With Range("C5")
.Font.Bold = True
.Interior.Color = 65535
End With
End Sub
With Range("C5")
.Font.Bold = True
.Interior.Color = 65535
End With
End Sub
- Gunakan vbNullString bukannya ""
Private Sub CommandButton1_Click()
If TextBox1.Value = vbNullString Then
MsgBox " Data Kosong!!", 16, "Aplikasi"
Else
MsgBox " Data ada.!!", 64, "Aplikasi"
End If
End Sub
If TextBox1.Value = vbNullString Then
MsgBox " Data Kosong!!", 16, "Aplikasi"
Else
MsgBox " Data ada.!!", 64, "Aplikasi"
End If
End Sub
- Menghindari Jumlah Baris dan Menggunakan Titik Dua (:)
Contoh 1
Kita dapat mendeklarasi Variable dengan cara sebaris seperti cara berikut yang akan memberikan effect lebih memcepat aplikasi
Sub Declare_Variables()
Dim cINtaku As Integer, padaMU As Integer
End Sub
Dim cINtaku As Integer, padaMU As Integer
End Sub
dari pada menulis kode Variable seperti dibawah ini yang akan memberikan effeck memperlambat
Sub Declare_Variables()
Dim cINtaku As Integer
Dim padaMU As Integer
End Sub
Dim cINtaku As Integer
Dim padaMU As Integer
End Sub
Contoh 2
Kita dapat menggunakan titik dua (:) untuk menulis beberapa Variable dalam satu baris dengan cara berikut yang akan mempercepat aplikasi
Sub Use_Colon_ForMultipleLine()
Dim iCnt As Integer, jCnt As Integer
iCnt = 5: jCnt = 10
End Sub
Dim iCnt As Integer, jCnt As Integer
iCnt = 5: jCnt = 10
End Sub
Jangan membuat Variable seperti kode dibawah ini yang akan memperlambat aplikasi
Sub Use_Colon_ForMultipleLine1()
Dim iCnt As Integer, jCnt As Integer
iCnt = 5
jCnt = 10
End Sub
Dim iCnt As Integer, jCnt As Integer
iCnt = 5
jCnt = 10
End Sub
- Gunakan pendekatan yang terbaik untuk Copy dan Paste
Sub CopyPaste_Ex2()
Sheets("Source").Range("A1:E10").Copy Destination:=Sheets("Destination").Range("A1")
End Sub
Sheets("Source").Range("A1:E10").Copy Destination:=Sheets("Destination").Range("A1")
End Sub
Jangan gunakan kode untuk keperluan Copy dan Paste seperti kode barikut yang akan memperlambat aplikasi anda
Sub CopyPaste_Ex1()
Sheets("Source").Range("A1:E10").Copy
Sheets("Destination").Range("A1").PasteSpecial
Application.CutCopyMode = False
End Sub
Sheets("Source").Range("A1:E10").Copy
Sheets("Destination").Range("A1").PasteSpecial
Application.CutCopyMode = False
End Sub
- Gunakan False dan True untuk perintah menghentikan beberapa hal berikut di excel.
Application.DisplayAlerts = False
Application.DisplayFullScreen = True
Application.Visible = True
Application.DisplayFormulaBar = False
Application.ActiveWindow.DisplayWorkbookTabs = False
Application.ActiveWindow.DisplayHeadings = False
Application.DisplayScrollBars = False
Application.DisplayFullScreen = True
Application.Visible = True
Application.DisplayFormulaBar = False
Application.ActiveWindow.DisplayWorkbookTabs = False
Application.ActiveWindow.DisplayHeadings = False
Application.DisplayScrollBars = False
Demikian Posting Teknik Mempercepat Aplikasi VBA Excel. Semoga dapat membantu anda yang ingin aplikasi yang dibuat dapat bekerja dengan effectif. Sharing bersama saya di kolom kementar.