Home |
Search |
Today's Posts |
#1
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
I can not find "movable" property for the form. So, how can i prevent user
from moving it around? Thanks |
#2
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
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 |
#3
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
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 |
#4
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
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 |
#5
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
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, :) |
#6
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
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 |
#7
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
<<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 |
Reply |
Thread Tools | Search this Thread |
Display Modes | |
|
|
![]() |
||||
Thread | Forum | |||
Referencing a cell even if its contents are moved moved/replaced | Excel Discussion (Misc queries) | |||
worksheet to be moved | Excel Discussion (Misc queries) | |||
Moved cell & Ref | Excel Programming | |||
Data Validation If statement moved to userform | Excel Programming | |||
Doesn't work when moved. | Excel Programming |