Controls collection, Move method example
The following example accesses individual controls from the Controls collection by using a For Each...Next loop. When the user presses CommandButton1, the other controls are placed in a column along the left edge of the form by using the Move method.
To use this example, copy this sample code to the Declarations portion of a form. Make sure that the form contains a CommandButton named CommandButton1 and several other controls.
Dim CtrlHeight As Single
Dim CtrlTop As Single
Dim CtrlGap As Single
Private Sub CommandButton1_Click()
Dim MyControl As Control
CtrlTop = 5
For Each MyControl In Controls
If MyControl.Name = "CommandButton1" Then
'Don't move or resize this control.
Else
'Move method using named arguments
MyControl.Move Top:=CtrlTop, _
Height:=CtrlHeight, Left:=5
'Move method using unnamed arguments (left,
'top, width, height)
'MyControl.Move 5, CtrlTop, ,CtrlHeight
'Calculate top coordinate for next control
CtrlTop = CtrlTop + CtrlHeight + CtrlGap
End If
Next
End Sub
Private Sub UserForm_Initialize()
CtrlHeight = 20
CtrlGap = 5
CommandButton1.Caption = "Click to move controls"
CommandButton1.AutoSize = True
CommandButton1.Left = 120
CommandButton1.Top = CtrlTop
End Sub
Support and feedback
Have questions or feedback about Office VBA or this documentation? Please see Office VBA support and feedback for guidance about the ways you can receive support and provide feedback.