VBA MsgBox Function Fails to Open Your Help File under Office 2007
By Aparna Pophale, Quality Assurance Specialist
The VBA MsgBox function includes optional arguments that let you add a
help button to the message box, and display help topics related to your
application.
The syntax for the MsgBox function is:
MsgBox(prompt[, buttons] [, title] [, helpfile,
context])
To make your help file available from the message box, pass the
vbMsgBoxHelpButton constant to show the help button, and pass the path
for your help file and the help context ID to define the help topic.
The following example demonstrates how to display your Help file while
using MsgBox in your application.
Sub ShowHelp ()
Const cstrHlp As String = _ "C:\ProgramFiles\FMS\Total
Visual CodeTools 2007\TVCTL.chm"
Dim strMessage As String
strMessage = MsgBox("Test For Help
file", vbOKCancel + vbQuestion + _ vbDefaultButton1 +
vbMsgBoxHelpButton, "Display Help File", cstrHlp, 71)
End Sub
If you click on the message box’s Help button, the Help file for Total
Visual CodeTools should open. This is the way one can open the desired
Windows help file/HTML help file while displaying a message box in a VBA
based application.


The above code works fine with Office 2003 VBA and earlier to display the
desired help file. However, if you try to use the same function in Office
2007 VBA, it does not open the appropriate help file.
For example if you try to use MsgBox function to open a help file in
Access 2007 application, it opens the Access 2007 Help file.

Similarly, for Excel 2007, it opens the Excel help system and not your
own. This appears to affect every Office 2007 product. It only opens the
application’s standard help file.
Unfortunately, this is broken until Microsoft fixes the MsgBox function.
If you need this feature, you’ll need to create your own form with a help
button and display your message and help file link that way.
Return to the tips page
|