The following example uses the OldLeft, OldTop, OldHeight, and OldWidth properties within the Layout event to keep a control at its current position and size. The user clicks the CommandButton labeled Move ComboBox to move the control, and then responds to a message box. The user can click the CommandButton labeled Reset ComboBox to reset the control for another repetition.

To use this example, copy this sample code to the Declarations portion of a form. Make sure that the form contains:

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