コントロール コレクションを使用してページ上のコントロールを移動する

次の例では、ループを使用して、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 のサポートおよびフィードバックを参照してください。