Changing Userform caption colour and removing 'X'

Steve Jukes

Board Regular
Joined
Apr 15, 2002
Messages
83
Hello all,
Can I change the background colour where the useform caption goes, preferabbly to transparent even though there is only a pacture behind it although. I also need to remove the 'X' button. The reason for this is that during my code I get the caption to change so the user know where the code is and what it is doing.

Many thanks

Steve
 

Excel Facts

When did Power Query debut in Excel?
Although it was an add-in in Excel 2010 & Excel 2013, Power Query became a part of Excel in 2016, in Data, Get & Transform Data.
Hi Steve,

You can remove the X by putting this code in the userform's code module:-

Code:
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

Private Const GWL_STYLE As Long = (-16)
Private Const WS_SYSMENU As Long = &H80000

Private Sub UserForm_Activate()
Dim lFormHandle As Long, lStyle As Long

If Application.Version < "9.0" Then
    lFormHandle = FindWindow("ThunderXFrame", Me.Caption)
Else
    lFormHandle = FindWindow("ThunderDFrame", Me.Caption)
End If

lStyle = GetWindowLong(lFormHandle, GWL_STYLE)

lStyle = lStyle And Not WS_SYSMENU
SetWindowLong lFormHandle, GWL_STYLE, (lStyle)
DrawMenuBar lFormHandle

End Sub

As for changing the colour of the caption bar I'm not sure. This is something that is Windows wide and although you can change it with code it would effect all Windows e.g. if you changed it to red then Excel's, Word's, Outlook's windows would also have a red bar.

There is an excellent example of things you can do with userforms and Windows API calls here:-

http://www.bmsltd.co.uk/Excel/Default.htm

Look for the formfun.zip file.

HTH,
Dan
 
Upvote 0
On 2002-05-09 00:01, Steve Jukes wrote:
Thanks you.
I cannot get your code to work but the website link has helped an enormous amount.

Steve

What part of the code can't you get to work,
where does it error out and where have you placed the code ?
 
Upvote 0
Many apologies I must have put it in the wrong place. I have just tried it by putting it in the userform declarations and it works fine.

Sorry for getting it wrong!!!!!!!!

Steve
 
Upvote 0

Forum statistics

Threads
1,213,536
Messages
6,114,215
Members
448,554
Latest member
Gleisner2

We've detected that you are using an adblocker.

We have a great community of people providing Excel help here, but the hosting costs are enormous. You can help keep this site running by allowing ads on MrExcel.com.
Allow Ads at MrExcel

Which adblocker are you using?

Disable AdBlock

Follow these easy steps to disable AdBlock

1)Click on the icon in the browser’s toolbar.
2)Click on the icon in the browser’s toolbar.
2)Click on the "Pause on this site" option.
Go back

Disable AdBlock Plus

Follow these easy steps to disable AdBlock Plus

1)Click on the icon in the browser’s toolbar.
2)Click on the toggle to disable it for "mrexcel.com".
Go back

Disable uBlock Origin

Follow these easy steps to disable uBlock Origin

1)Click on the icon in the browser’s toolbar.
2)Click on the "Power" button.
3)Click on the "Refresh" button.
Go back

Disable uBlock

Follow these easy steps to disable uBlock

1)Click on the icon in the browser’s toolbar.
2)Click on the "Power" button.
3)Click on the "Refresh" button.
Go back
Back
Top