Lock userform position

G

Guest

Is it possible to lock the position of a userform to prevent users from dragging it around the screen?
 
T

Tom Ogilvy

you can display it without the caption bar and then it can't be moved.
Download Formfun.zip from Stephen Bullen's site and it demonstrates many
options you can do with a userform. Code is accessible.

http://www.BMSLtd.ie/Excel.Default.htm

--
Regards,
Tom Ogilvy

Newbie said:
Is it possible to lock the position of a userform to prevent users from
dragging it around the screen?
 
M

Michel Pierron

Hi Newbie,
You can test:
Private Declare Function FindWindow& Lib "user32" Alias _
"FindWindowA" (ByVal lpClassName$, ByVal lpWindowName$)
Private Declare Function GetSystemMenu& Lib "user32" _
(ByVal hwnd&, ByVal bRevert&)
Private Declare Function DeleteMenu& Lib "user32" _
(ByVal hMenu&, ByVal nPosition&, ByVal wFlags&)

Private Sub UserForm_Initialize()
Me.StartUpPosition = 0
Me.Left = 50: Me.Top = 90
Dim hwnd&, hSysMenu&
hwnd = FindWindow(vbNullString, Me.Caption)
hSysMenu = GetSystemMenu(hwnd, False)
DeleteMenu hSysMenu, &HF010&, &H0&
End Sub

MP

Newbie said:
Is it possible to lock the position of a userform to prevent users from dragging
it around the screen?
 
M

Michel Pierron

Re Newbie,
Or if you prefer (to envisage a button to close the userform):
Private Declare Function FindWindowA& Lib "User32" _
(ByVal lpClassName$, ByVal lpWindowName$)
Private Declare Function SetWindowLongA& Lib "User32" _
(ByVal hWnd&, ByVal nIndex&, ByVal dwNewLong&)

' Necessary button to close userform
Private Sub CommandButton1_Click()
Unload Me
End Sub

Private Sub UserForm_Initialize()
Me.StartUpPosition = 0
Me.Left = 50: Me.Top = 90
Dim hWnd As Long, exLong As Long
hWnd = FindWindowA(vbNullString, Me.Caption)
SetWindowLongA hWnd, -16, &H84400080
End Sub

MP


Newbie said:
Is it possible to lock the position of a userform to prevent users from dragging
it around the screen?
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top