View Single Post
  #2   Report Post  
Posted to microsoft.public.excel.programming
Michel Pierron[_2_] Michel Pierron[_2_] is offline
external usenet poster
 
Posts: 63
Default Border style of Excel forms

Hi Shu;
Private Declare Function FindWindow& Lib "user32" Alias "FindWindowA" _
(ByVal lpClassName$, ByVal lpWindowName$)
Private Declare Function SetWindowLong& Lib "user32" Alias _
"SetWindowLongA" (ByVal hWnd&, ByVal nIndex&, ByVal dwNewLong&)
Private Declare Function EnableWindow& Lib "user32" (ByVal hWnd&, ByVal fEnable&)
Private Declare Function ShowWindow& Lib "user32" (ByVal hWnd&, ByVal nCmdShow&)

' Minimize in application
Private Sub UserForm_Initialize()
Dim Style As Long
' Min: &H20000 / Max: &H10000 / Resize: &H40000
Style = &H84C80080 Or &H20000 Or &H40000
SetWindowLong FindWindow(vbNullString, Me.Caption), -16, Style
EnableWindow FindWindow(vbNullString, Application.Caption), 1
End Sub

To reduce the userform in the Taskbar, add the procedu
' Minimize in TaskBar
Private Sub UserForm_Activate()
Dim hWnd As Long
hWnd = FindWindow(vbNullString, Me.Caption)
ShowWindow hWnd, 0
SetWindowLong hWnd, -20, &H40101
ShowWindow hWnd, 1
End Sub

Regards
MP

"Shu" a écrit dans le message de
...
Hello,
Why the form in Excel can not be set with some maximize or
minimize icon on the top ritht of form. Only two options
are provided in Excel VBE. One is 0-frmborderStylenone,
the other is 1-frmborderstylesingle. But There are more
choices in VB.

Is there any way to set up them?

Thanks very much.

Rgds
Shu