Given the choice of creating a With statement for use with an object or
an user-defined type (UDT), choose the object over the UDT. Because UDTs
are simple variables and not full-blown objects, they don't take the
same resource hit as objects do when you repeatedly access their
properties. For instance, consider the following code, which alters the
command button's settings when you click it:
Private Type TBtnSettings
BgColor As Long
FontSize As Integer
Top As Integer
Left As Integer
Width As Integer
Height As Integer
End Type
Private mOrigSettings As TBtnSettings
Private Sub Command1_Click()
With Command1
.BackColor = vbGreen
.Top = mOrigSettings.Top - 100
.Left = mOrigSettings.Left - 100
.Width = mOrigSettings.Width + 200
.Height = mOrigSettings.Height + 200
.FontSize = mOrigSettings.FontSize + 4
End With
End Sub
Here, we could have used the With statement to reduce the number of
times we needed to manually type 'mOrigSettings'. However, as we stated,
by using the With statement for Command1 instead, our code becomes much
more efficient.