Bu bölümde VBA'nın daha hızlı ve etkili çalışması için yapılması gerekenleri inceleyeceğiz.
Aşağıdaki kod ile VBA yavaş çalışır. Bunun sebebi, VBA her hücre için yazılan değeri gösterebilir ve sayfayı silmek istersek bize gereksiz yere onay kutusu gösterir.
Aşağıdaki kod ile VBA hızlı çalışır. ScreenUpdating ile değer yapıştırma işlemini izlememize gerek kalmaz. DisplayAlerts ile gereksiz bir uyarı almamıza gerek kalmaz. Calculation ile işlem sırasında VBA'nın hesaplama yapmasına gerek kalmaz.
Sub Yavas() Dim ShYeni As Worksheet Dim hucre As Range Application.StatusBar = "Bekleyin" Set ShYeni = Worksheets.Add For Each hucre In ShYeni.Range("A1:Z99999") hucre.Value = 99 Next hucre ShYeni.Delete Sayfa1.Select Application.StatusBar = "" End Sub
Aşağıdaki kod ile VBA hızlı çalışır. ScreenUpdating ile değer yapıştırma işlemini izlememize gerek kalmaz. DisplayAlerts ile gereksiz bir uyarı almamıza gerek kalmaz. Calculation ile işlem sırasında VBA'nın hesaplama yapmasına gerek kalmaz.
Sub Hizli() Dim ShYeni As Worksheet Dim hucre As Range 'bazı özellikleri kapat With Application .StatusBar = "Bekleyin" .ScreenUpdating = False .DisplayAlerts = False .Calculation = xlCalculationManual End With Set ShYeni = Worksheets.Add For Each hucre In ShYeni.Range("A1:Z99999") hucre.Value = 99 Next hucre ShYeni.Delete Sayfa1.Select 'özellikleri tekrar aç With Application .StatusBar = "" .ScreenUpdating = True .DisplayAlerts = True .Calculation = xlCalculationAutomatic 'kopyala ve yapıştır özel yöntemlerini kullandıysanız, panoda çok fazla veriniz olabilir. .CutCopyMode = False End With End Sub