Not just in principle. Your answer does not need that qualifier. Your
answer is correct. The answer to:
Can this be done?
is yes, it can.
Just to add possible suggestions. Store the Top and Left values as document
Variables. Something like:
Private Sub CommandButton1_Click()
ActiveDocument.Variables("myTop").Value = Me.Top
ActiveDocument.Variables("myLeft").Value = Me.Left
Unload Me
End Sub
When Initializing, check the value of StartUpPosition. Manual = 0, so if it
is NOT set as Manual, it will open "normally". At the end of the following,
StartUpPosition is set for Manual, so the next time it is Initialized
StartUpPosition will be 0, and so the last positions (stored as Variables)
will be used.
Private Sub UserForm_Initialize()
On Error Resume Next
If Me.StartUpPosition = 0 Then
Me.Top = ActiveDocument.Variables("myTop").Value
Me.Left = ActiveDocument.Variables("myLeft").Value
End If
Me.StartUpPosition = 0
End Sub
[quoted text clipped - 8 lines]
them back to the properties. You'll probably want to set some default values
for use when the form is opened for the first time.