Center Userform Controls

S

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?
 
B

Bob Phillips

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)
 
T

Tom Ogilvy

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.
 
S

Shawn

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

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

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