programmatically close help file before Excel closes?

R

RB Smissaert

Using Excel XP.
I am having the following problem.

Have a userform that can launch a .chm help file with the following code:

'this API function is for displaying the help file
Private Declare Function HtmlHelpTopic Lib "hhctrl.ocx" _
Alias "HtmlHelpA" _
(ByVal hWnd As Long, _
ByVal lpHelpFile As String, _
ByVal wCommand As Long, _
ByVal dwData As String) As Long


Sub ShowHtmlHelp(ByVal strHelpFile As String, _
Optional ByVal strHelpPage As String)

Const HH_DISPLAY_TOPIC As Long = &H0

On Error Resume Next
HtmlHelpTopic 0&, strHelpFile, HH_DISPLAY_TOPIC, strHelpPage

End Sub


Sub ShowHelp()

Dim AddinFolder As String

AddinFolder = _
Left(ThisWorkbook.FullName, Len(ThisWorkbook.FullName) - 21)

ShowHtmlHelp AddinFolder & "\Test.chm"

End Sub


This works all fine.

The problem is when the help file is loaded, the userform gets closed and
then Excel gets closed.
Excel then crashes.
So I have to make sure that the help file gets closed before Excel closes.
Perhaps I need an API function here, but I can't figure it out.
Thanks for any advice.


RBS
 
S

Stephen Bullen

Hi RB,

The return value from the call to HtmlHelp is the hWnd of the help window,
which you should store in a module-level variable, then use the SendMessage
API function to send it a WM_CLOSE message to close it.

Regards

Stephen Bullen
Using Excel XP.
I am having the following problem.

Have a userform that can launch a .chm help file with the following code:

'this API function is for displaying the help file
Private Declare Function HtmlHelpTopic Lib "hhctrl.ocx" _
Alias "HtmlHelpA" _
(ByVal hWnd As Long, _
ByVal lpHelpFile As String, _
ByVal wCommand As Long, _
ByVal dwData As String) As Long

Sub ShowHtmlHelp(ByVal strHelpFile As String, _
Optional ByVal strHelpPage As String)

Const HH_DISPLAY_TOPIC As Long = &H0

On Error Resume Next
HtmlHelpTopic 0&, strHelpFile, HH_DISPLAY_TOPIC, strHelpPage

End Sub


This works all fine.

The problem is when the help file is loaded, the userform gets closed and
then Excel gets closed.
Excel then crashes.
So I have to make sure that the help file gets closed before Excel closes.
Perhaps I need an API function here, but I can't figure it out.
Thanks for any advice.


Regards

Stephen Bullen
Microsoft MVP - Excel
www.BMSLtd.co.uk
 

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