Exemplo do evento Layout, da propriedade LayoutEffect, do método Move
O exemplo a seguir move um controle selecionado em um formulário com o método Move e usa o evento Layout e a propriedade LayoutEffect para identificar o controle que se moveu (e alterou o layout do UserForm).
O usuário clica em um controle para mover e, em seguida, clica no CommandButton. Uma caixa de mensagem exibe o nome do controle que está em movimento.
Para usar este exemplo, copie esta amostra de código para a parte Declarações de um formulário. Verifique se o formulário contém:
- Uma Caixa de Texto chamada TextBox1.
- Uma ComboBox chamada ComboBox1.
- Um OptionButton chamado OptionButton1.
- Um CommandButton denominado CommandButton1.
- Um ToggleButton chamado ToggleButton1.
Private Sub UserForm_Initialize()
CommandButton1.Caption = "Move current control"
CommandButton1.AutoSize = True
CommandButton1.TakeFocusOnClick = False
ToggleButton1.Caption = "Use Layout Event"
ToggleButton1.Value = True
End Sub
Private Sub CommandButton1_Click()
If ActiveControl.Name = "ToggleButton1" Then
'Keep it stationary
Else
'Move the control, using Layout event when
'ToggleButton1.Value is True
ActiveControl.Move 0, 0, , , _
ToggleButton1.Value
End If
End Sub
Private Sub UserForm_Layout()
Dim MyControl As Control
MsgBox "In the Layout Event"
'Find the control that is moving.
For Each MyControl In Controls
If MyControl.LayoutEffect = _
fmLayoutEffectInitiate Then
MsgBox MyControl.Name & " is moving."
Exit For
End If
Next
End Sub
Private Sub ToggleButton1_Click()
If ToggleButton1.Value = True Then
ToggleButton1.Caption = "Use Layout Event"
Else
ToggleButton1.Caption = "No Layout Event"
End If
End Sub
Suporte e comentários
Tem dúvidas ou quer enviar comentários sobre o VBA para Office ou sobre esta documentação? Confira Suporte e comentários sobre o VBA para Office a fim de obter orientação sobre as maneiras pelas quais você pode receber suporte e fornecer comentários.