次の方法で共有


Layout イベント、OldLeft プロパティ、OldTop プロパティ、OldHeight プロパティ、OldWidth プロパティの例

次の例では、Layout イベント内で OldLeft プロパティと OldTop プロパティと OldHeight プロパティと OldWidth プロパティを使用して、コントロールを現在の位置とサイズに維持します。

ユーザーは、[コンボ ボックスの移動] というラベルの付いた CommandButton をクリックしてコントロールを移動し、メッセージ ボックスに応答します。 そこで " Reset ComboBox " というラベルが付いた CommandButton をクリックすると、コントロールがリセットされて最初の状態に戻ります。

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

  • CommandButton1 と CommandButton2 の 2 つの CommandButton コントロール。
  • コンボ ボックス ( ComboBox ) コントロール (ComboBox1)
Dim Initialize As Integer 
Dim ComboLeft, ComboTop, ComboWidth, _ 
 ComboHeight As Integer 
 
Private Sub UserForm_Initialize() 
 Initialize = 0 
 CommandButton1.Caption = "Move ComboBox" 
 CommandButton2.Caption = "Reset ComboBox" 
 
 'Information for resetting ComboBox 
 ComboLeft = ComboBox1.Left 
 ComboTop = ComboBox1.Top 
 ComboWidth = ComboBox1.Width 
 ComboHeight = ComboBox1.Height 
End Sub 
 
Private Sub CommandButton1_Click() 
 ComboBox1.Move 0, 0, , , True 
End Sub 
 
Private Sub UserForm_Layout() 
 Dim MyControl As Control 
 Dim MsgBoxResult As Integer 
 'Suppress MsgBox on initial layout event. 
 If Initialize = 0 Then 
 Initialize = 1 
 Exit Sub 
 End If 
 
 MsgBoxResult = MsgBox("In Layout event " _ 
 & "- Continue move?", vbYesNo) 
 If MsgBoxResult = vbNo Then 
 ComboBox1.Move ComboBox1.OldLeft, _ 
 ComboBox1.OldTop, ComboBox1.OldWidth, _ 
 ComboBox1.OldHeight 
 End If 
End Sub 
 
Private Sub CommandButton2_Click() 
 ComboBox1.Move ComboLeft, ComboTop, _ 
 ComboWidth, ComboHeight 
End Sub

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

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