Error Checking in Excel
Thanks Thanks:  0
Likes Likes:  0
Results 1 to 5 of 5

Thread: Changing Userform caption colour and removing 'X'

  1. #1
    Board Regular
    Join Date
    Apr 2002
    Posts
    83
    Post Thanks / Like
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    Default

    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

  2. #2
    MrExcel MVP
    Join Date
    Feb 2002
    Location
    Sydney, Australia
    Posts
    2,940
    Post Thanks / Like
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    Default

    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

  3. #3
    Board Regular
    Join Date
    Apr 2002
    Posts
    83
    Post Thanks / Like
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    Default

    Thanks you.
    I cannot get your code to work but the website link has helped an enormous amount.

    Steve

  4. #4
    MrExcel MVP Ivan F Moala's Avatar
    Join Date
    Feb 2002
    Location
    Auckland, New Zealand
    Posts
    4,209
    Post Thanks / Like
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    Default

    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 ?

    Kind Regards,
    Ivan F Moala From the City of Sails

  5. #5
    Board Regular
    Join Date
    Apr 2002
    Posts
    83
    Post Thanks / Like
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    Default

    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

Some videos you may like

User Tag List

Like this thread? Share it with others

Like this thread? Share it with others

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •