Partager via


Utiliser la collection Controls pour déplacer des contrôles sur une page

L’exemple suivant accède à des contrôles individuels à partir de la collection Controls Microsoft Forms 2.0 à l’aide d’une For Each...Next boucle. Lorsque l’utilisateur appuie sur CommandButton1, les autres contrôles sont placés dans une colonne sur le bord gauche du formulaire à l’aide de la méthode Move du contrôle.

Pour utiliser cet exemple, copiez-en le code vers l’éditeur de script d’un formulaire. Pour exécuter le code, vous devez ouvrir le formulaire afin d’activer l’événement Open de l’élément. Assurez-vous que le formulaire contient un CommandButton nommé CommandButton1 et plusieurs autres contrôles.

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

Assistance et commentaires

Avez-vous des questions ou des commentaires sur Office VBA ou sur cette documentation ? Consultez la rubrique concernant l’assistance pour Office VBA et l’envoi de commentaires afin d’obtenir des instructions pour recevoir une assistance et envoyer vos commentaires.