Reduce the number of lines using comma "," or colon ":" - danielep71/VBA-PERFORMANCE GitHub Wiki

[Home]] ](/danielep71/VBA-PERFORMANCE/wiki/[[Tips-and-Tricks)


1. Statement

Reducing the number of lines improves the performance (although it reduces readability).

2. Description

There are some VBA statements that may be written in a single executable line of code instead of multiple lines.

Example:

We can declare variables on the same line, separating each one with a comma:

Sub Declare_Variables()
    Dim intFirstNumber As Integer, IntSecondNumber As Integer   
End Sub

Or we can use colon (:) to write multiple statements in a single line:

Sub Use_Colon_ForMultipleLine()
    Dim intFirstNumber As Integer, IntSecondNumber As Integer
    intFirstNumber = 5: intSecondNumber = 10
End Sub

3. Performance Test

Sub Test_ReduceNumberofLines()
'------------------------------------------------------------------------------
'Declare
    Dim i               As Long                     'Loop counter
    Dim MaxIter         As Long                     'Max # of iterations
    Dim iMethod         As Integer                  'Performance method
    Dim cPM             As cPerformanceMonitor      'Performance tracker
'------------------------------------------------------------------------------
'Initialize
    MaxIter = 1
    iMethod = 5
    Set cPM = New cPerformanceMonitor
'------------------------------------------------------------------------------
'Test1
    cPM.StartTimer (iMethod)
    For i = 1 To MaxIter
        Dim iFirstNumber As Integer
        Dim iSecondNumber As Integer
        iFirstNumber = 5
        iSecondNumber = 10
    Next i
    Debug.Print cPM.ElapsedTime(iMethod) & " - multi line"
'Test2
    cPM.StartTimer (iMethod)
    For i = 1 To MaxIter
        Dim iThirdNumber As Integer, iFourthNumber As Integer
        iThirdNumber = 5: iFourthNumber = 10
    Next i
    Debug.Print cPM.ElapsedTime(iMethod) & " - single line"
'------------------------------------------------------------------------------
'Exit
    Set cPM = Nothing
End Sub

4. Results

The results are the following:

  • Looping 100,000,000 times:
    • 00:00:00 - 643 ms - 206 µs - 900 ns - multi line
    • 00:00:00 - 699 ms - 806 µs - 000 ns - single line
  • Looping 1,000,000,000 times
    • 00:00:07 - 588 ms - 789 µs - 100 ns - multi line
    • 00:00:08 - 790 ms - 854 µs - 100 ns - single line
  • Looping 1 time
    • 00:00:00 - 000 ms - 003 µs - 200 ns - multi line
    • 00:00:00 - 000 ms - 005 µs - 400 ns - single line

5. Conclusions

Impact: false

According to my test there isn’t any performance increase.

Using multi line seems to perform even better. Furthermore, it increases code readability.


[Home]] ](/danielep71/VBA-PERFORMANCE/wiki/[[Tips-and-Tricks)