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)
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.