ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Center Userform Controls (https://www.excelbanter.com/excel-programming/391683-center-userform-controls.html)

Shawn

Center Userform Controls
 
I am using the following code to make the userform fill the entire screen:

Private mlAppWindowState As Long
Private Sub UserForm_Initialize()
With Application
mlAppWindowState = .WindowState
.WindowState = xlMaximized
Me.Move .Left, .Top, .Width, .Height
End With
End Sub
Private Sub UserForm_Terminate()
Application.WindowState = mlAppWindowState
End Sub


What I need is VBA to center the userform controls. Maybe I could put the
controls inside a frame and I just need to the frame to center. I am not
sure. But I need VBA to position the controls. Can someone get me started?


--
Thanks
Shawn

Bob Phillips

Center Userform Controls
 
Just do something like

With Me
.cmdOK.Left = .Width \ 2 - .cmdOK.Width \ 2
.cmdQuit.Left = .Width \ 2 - .cmdQuit.Width \ 2
End With


in the form activate event

--
HTH

Bob

(there's no email, no snail mail, but somewhere should be gmail in my addy)

"Shawn" wrote in message
...
I am using the following code to make the userform fill the entire screen:

Private mlAppWindowState As Long
Private Sub UserForm_Initialize()
With Application
mlAppWindowState = .WindowState
.WindowState = xlMaximized
Me.Move .Left, .Top, .Width, .Height
End With
End Sub
Private Sub UserForm_Terminate()
Application.WindowState = mlAppWindowState
End Sub


What I need is VBA to center the userform controls. Maybe I could put the
controls inside a frame and I just need to the frame to center. I am not
sure. But I need VBA to position the controls. Can someone get me
started?


--
Thanks
Shawn




Tom Ogilvy

Center Userform Controls
 
the controls have top, left, width and height properties as well, Just
calculate where you want them and then set those attributes.

To get the middle of the form, divide the width in half and add it the left
position. Subtract half the width of the control to get the left position
for the control. Use logic related to that to calculate where you want you
controls.

--
Regards,
Tom Ogilvy


"Shawn" wrote:

I am using the following code to make the userform fill the entire screen:

Private mlAppWindowState As Long
Private Sub UserForm_Initialize()
With Application
mlAppWindowState = .WindowState
.WindowState = xlMaximized
Me.Move .Left, .Top, .Width, .Height
End With
End Sub
Private Sub UserForm_Terminate()
Application.WindowState = mlAppWindowState
End Sub


What I need is VBA to center the userform controls. Maybe I could put the
controls inside a frame and I just need to the frame to center. I am not
sure. But I need VBA to position the controls. Can someone get me started?


--
Thanks
Shawn


NickHK[_3_]

Center Userform Controls
 
Shawn,
There are various resizer classes out there, most designed for VB5/6 forms
rather than VBA userforms, but you could edit to suit. e.g.
http://www.dutchthewiz.com/vb/api/

NickHK

"Shawn" ...
I am using the following code to make the userform fill the entire screen:

Private mlAppWindowState As Long
Private Sub UserForm_Initialize()
With Application
mlAppWindowState = .WindowState
.WindowState = xlMaximized
Me.Move .Left, .Top, .Width, .Height
End With
End Sub
Private Sub UserForm_Terminate()
Application.WindowState = mlAppWindowState
End Sub


What I need is VBA to center the userform controls. Maybe I could put the
controls inside a frame and I just need to the frame to center. I am not
sure. But I need VBA to position the controls. Can someone get me
started?


--
Thanks
Shawn




Shawn

Center Userform Controls
 
I used this code, for example, and it worked great.

usfWorkOrder.Label1.Left = (usfWorkOrder.Width) / 2


--
Thanks
Shawn


"Tom Ogilvy" wrote:

the controls have top, left, width and height properties as well, Just
calculate where you want them and then set those attributes.

To get the middle of the form, divide the width in half and add it the left
position. Subtract half the width of the control to get the left position
for the control. Use logic related to that to calculate where you want you
controls.

--
Regards,
Tom Ogilvy


"Shawn" wrote:

I am using the following code to make the userform fill the entire screen:

Private mlAppWindowState As Long
Private Sub UserForm_Initialize()
With Application
mlAppWindowState = .WindowState
.WindowState = xlMaximized
Me.Move .Left, .Top, .Width, .Height
End With
End Sub
Private Sub UserForm_Terminate()
Application.WindowState = mlAppWindowState
End Sub


What I need is VBA to center the userform controls. Maybe I could put the
controls inside a frame and I just need to the frame to center. I am not
sure. But I need VBA to position the controls. Can someone get me started?


--
Thanks
Shawn



All times are GMT +1. The time now is 02:55 PM.

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