使用 Controls 集合移动页面上的控件
以下示例使用 循环访问 Microsoft Forms 2.0 Controls 集合中的For Each...Next
单个控件。 当用户按“CommandButton1”时,使用该控件的 Move 方法将其他控件按列放到窗体左侧。
若要使用本示例,请将此示例代码复制到窗体的"脚本编辑器"中。 若要运行本代码,需要打开该窗体,以便激活项目的 Open 事件。 确保窗体包含名为 CommandButton1 的 CommandButton 以及几个其他控件。
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
支持和反馈
有关于 Office VBA 或本文档的疑问或反馈? 请参阅 Office VBA 支持和反馈,获取有关如何接收支持和提供反馈的指南。