I had the D and the X backwards - X is for xl2000 and later and D is for
xl97. From a post by Chip Pearson:
William,
You can use the FindWindow API to get the hWnd of the form. The class name
is
"ThunderXFrame" in VBA6 (Excel 2000 and 2002) or "ThunderDFrame" in VBA5
(Excel97). E.g.,
Public Declare Function FindWindow Lib "user32" Alias "FindWindowA" _
(ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Public Declare Function SendMessage Lib "user32" Alias "SendMessageA" _
(ByVal hWND As Long, ByVal wMsg As Long, ByVal wParam _
As Long, lParam AsAny) As Long
Public Const WM_CLOSE = &H10
Sub AAA()
Dim hWND As Long
UserForm1.Show vbModeless
#If VBA6 Then
hWND = FindWindow("ThunderDFrame", UserForm1.Caption)
#Else
hWND = FindWindow("ThunderXFrame", UserForm1.Caption)
#End If
SendMessage hWND, WM_CLOSE, 0, 0
End Sub
--
Cordially,
Chip Pearson
Microsoft MVP - Excel
Pearson Software Consulting, LLC
www.cpearson.com (e-mail address removed)
--
Regards,
Tom Ogilvy