次の方法で共有


Layout イベント、LayoutEffect プロパティ、Move メソッドの例

次の使用例は、 Move メソッドを使用してフォーム上で選択したコントロールを移動し、 Layout イベントと LayoutEffect プロパティを使用して移動 (および UserForm のレイアウトを変更) するコントロールを識別します。

ユーザーが移動するコントロールをクリックし、 CommandButton をクリックします。 移動するコントロールの名前がメッセージ ボックスに表示されます。

この例を使用するには、このサンプル コードをフォームの宣言部分にコピーします。 フォームに次が含まれていることを確認してください。

  • テキスト ボックス ( TextBox ) コントロール (TextBox1)
  • コンボ ボックス ( ComboBox ) コントロール (ComboBox1)
  • OptionButton1 という名前の OptionButton。
  • CommandButton1 と命名された CommandButton
  • トグル ボタン ( ToggleButton ) コントロール (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

サポートとフィードバック

Office VBA またはこの説明書に関するご質問やフィードバックがありますか? サポートの受け方およびフィードバックをお寄せいただく方法のガイダンスについては、Office VBA のサポートおよびフィードバックを参照してください。