ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Please, help!!! How to keep userform from being moved? (https://www.excelbanter.com/excel-programming/401042-please-help-how-keep-userform-being-moved.html)

Boris

Please, help!!! How to keep userform from being moved?
 
I can not find "movable" property for the form. So, how can i prevent user
from moving it around?
Thanks

[email protected]

Please, help!!! How to keep userform from being moved?
 
On Nov 13, 11:29 am, boris wrote:
I can not find "movable" property for the form. So, how can i prevent user
from moving it around?
Thanks


*** Place this code In a User Form ***

Option Explicit

Private Sub UserForm_Initialize()

Call RemoveCaption(Me)

End Sub

*** Place this code In a Module ***

Option Explicit

Private Declare Function FindWindow Lib "User32" _
Alias "FindWindowA" ( _
ByVal lpClassName As String, _
ByVal lpWindowName As String) As Long

Private Declare Function GetWindowLong Lib "User32" _
Alias "GetWindowLongA" ( _
ByVal hwnd As Long, _
ByVal nIndex As Long) As Long

Private Declare Function SetWindowLong Lib "User32" _
Alias "SetWindowLongA" (ByVal hwnd As Long, _
ByVal nIndex As Long, _
ByVal dwNewLong As Long) As Long

Private Declare Function DrawMenuBar Lib "User32" ( _
ByVal hwnd As Long) As Long

Sub RemoveCaption(objForm As Object)

Dim lStyle As Long
Dim hMenu As Long
Dim mhWndForm As Long

If Val(Application.Version) < 9 Then
mhWndForm = FindWindow("ThunderXFrame", objForm.Caption) 'XL97
Else
mhWndForm = FindWindow("ThunderDFrame", objForm.Caption)
'XL2000+
End If
lStyle = GetWindowLong(mhWndForm, -16)
lStyle = lStyle And Not &HC00000
SetWindowLong mhWndForm, -16, lStyle
DrawMenuBar mhWndForm

End Sub

Sub ShowForm()

UserForm1.Show False

End Sub


Chip Pearson

Please, help!!! How to keep userform from being moved?
 
There is no simple way to do this. Which begs the question, why would you
want to prevent the user from moving the form? Personally, I would not
appreciate it if some program locked up display positions.

If you want the form top open at a particular location, such as next to a
specific cell, see the code at
http://www.cpearson.com/Excel/FormPosition.htm .

If you want to keep the form within the bounds of the main Excel window or
the window of a workbook, see the code at
http://www.cpearson.com/Excel/SetParent.aspx .

--
Cordially,
Chip Pearson
Microsoft MVP - Excel, 10 Years
Pearson Software Consulting
www.cpearson.com
(email on the web site)

"boris" wrote in message
...
I can not find "movable" property for the form. So, how can i prevent user
from moving it around?
Thanks



Tim Zych

Please, help!!! How to keep userform from being moved?
 
Why would you need to prevent that? Is business logic dependent on the x,y
position of the top-left?

--
Tim Zych
SF, CA

"boris" wrote in message
...
I can not find "movable" property for the form. So, how can i prevent user
from moving it around?
Thanks




[email protected]

Please, help!!! How to keep userform from being moved?
 
On Nov 13, 11:54 am, wrote:
On Nov 13, 11:29 am, boris wrote:

I can not find "movable" property for the form. So, how can i prevent user
from moving it around?
Thanks


*** Place this code In a User Form ***

Option Explicit

Private Sub UserForm_Initialize()

Call RemoveCaption(Me)

End Sub

*** Place this code In a Module ***

Option Explicit

Private Declare Function FindWindow Lib "User32" _
Alias "FindWindowA" ( _
ByVal lpClassName As String, _
ByVal lpWindowName As String) As Long

Private Declare Function GetWindowLong Lib "User32" _
Alias "GetWindowLongA" ( _
ByVal hwnd As Long, _
ByVal nIndex As Long) As Long

Private Declare Function SetWindowLong Lib "User32" _
Alias "SetWindowLongA" (ByVal hwnd As Long, _
ByVal nIndex As Long, _
ByVal dwNewLong As Long) As Long

Private Declare Function DrawMenuBar Lib "User32" ( _
ByVal hwnd As Long) As Long

Sub RemoveCaption(objForm As Object)

Dim lStyle As Long
Dim hMenu As Long
Dim mhWndForm As Long

If Val(Application.Version) < 9 Then
mhWndForm = FindWindow("ThunderXFrame", objForm.Caption) 'XL97
Else
mhWndForm = FindWindow("ThunderDFrame", objForm.Caption)
'XL2000+
End If
lStyle = GetWindowLong(mhWndForm, -16)
lStyle = lStyle And Not &HC00000
SetWindowLong mhWndForm, -16, lStyle
DrawMenuBar mhWndForm

End Sub

Sub ShowForm()

UserForm1.Show False

End Sub


Found it on the internet and it works, :)


Boris

Please, help!!! How to keep userform from being moved?
 
I am trying to prevent user from seeing the spreadsheet, so the form will
cover it up

"Tim Zych" wrote:

Why would you need to prevent that? Is business logic dependent on the x,y
position of the top-left?

--
Tim Zych
SF, CA

"boris" wrote in message
...
I can not find "movable" property for the form. So, how can i prevent user
from moving it around?
Thanks





Bill Renaud

Please, help!!! How to keep userform from being moved?
 
<<I am trying to prevent user from seeing the spreadsheet, so the form will
cover it up.
Why not just hide the worksheet, until the form is dismissed?

--
Regards,
Bill Renaud





All times are GMT +1. The time now is 02:00 AM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
ExcelBanter.com