Use the Controls Collection to Move Controls on a Page
The following example accesses individual controls from the Microsoft Forms 2.0 Controls collection 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 using the Move method of the control.
To use this example, copy this sample code to the Script Editor of a form. To run the code you need to open the form so the Open event of the item will activate. Make sure that the form contains a CommandButton named CommandButton1 and several other controls.
Dim CtrlHeight
Dim CtrlTop
Dim CtrlGap
Dim CommandButton1
Sub Item_Open()
Set CommandButton1 = Item.GetInspector.ModifiedFormPages("P.2").CommandButton1
CtrlHeight = 20
CtrlGap = 5
CommandButton1.Caption = "Click to move controls"
CommandButton1.AutoSize = True
CommandButton1.Left = 120
CommandButton1.Top = CtrlTop
End Sub
Sub CommandButton1_Click()
Dim MyControl
Set AllControls = Item.GetInspector.ModifiedFormPages("P.2").Controls
CtrlTop = 5
For i = 0 to AllControls.Count - 1
Set MyControl = AllControls(i)
If MyControl.Name = "CommandButton1" Then
'Don't move or resize this control.
Else
'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
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.