View Single Post
  #2   Report Post  
Posted to microsoft.public.excel.programming
keepITcool keepITcool is offline
external usenet poster
 
Posts: 2,253
Default WhatsThisHelp in VBA - setting the help file path programmatically


similar to changing referenced objects or files.
... it cant be done on locked project.

I'm been doing a bit of research on a workaround but it's complex..


specify the help file without a path.
then it will look in the CURRENT folder.

UNLESS there's a registry entry...

windows keeps track of help file locations.
enter the name and location of your help file under this key.
(or create a procedure to do this..
although HKLM keys often require admin 'permissions')

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Help
MyXLApp.hlp 'c:\program files\myxlapp'


if you need multiple languages..
copy the files on disk..
FileCopy MyXLApp_German.hlp MyXlapp.hlp

i know i know.. not what you wanted to hear..




--
keepITcool
| www.XLsupport.com | keepITcool chello nl | amsterdam


seisman wrote :

In Excel VBA you can activate What's This Help (that uses the ? icon
in the top of a form) by specifying the help file path in the Help
File Name field on the General tab of Project Properties and then
assigning help context ID's to the various form controls (while also
setting the form's WhatsthisButton and WhatsThisHelp properties to
true). This works fine as long as you use WinHelp 4 and not HTML
help and you can change the help file path in the the Project
Properties programmatically with
Application.ThisWorkbook.VBProject.Helpfile = MyHelpfilepath.

All is OK until you Lock the Project for Viewing in the the Protection
tab of the project properties. The call to the VBProject.Helpfile
property then produces an error as locking the Project protects the
Project properties. Does anyone know a way around this?

(Note: I am aware that you can use the Application.Help method to
access HTML help files from form controls but I am wanting to
implement the Whats This Help specificaly).

Thanks in advance,
Seisman