#441 | .CHM形式のヘルプを表示させる方法 | VBA、API | |
旧来の.HLP形式のファイルであれば、フォームの「ヘルプファイル」プロパティや、フォーム/コントロールの「ヘルプコンテキストID」プロパティを使ってノンプログラムでF1キーでそれを開かせることができますが、ここではVBAによるWindows APIを使って.CHM(HTMLヘルプ)形式のヘルプファイルを表示させる方法を紹介します。 まず、標準モジュールに次のようなコードを記述します。これらは、Windows APIのHTMLヘルプ呼び出し関数「HtmlHelp」ならびにそれに渡すコマンドの定数の宣言で、モジュールのDeclarationsセクションに記述します。 'HtmlHelp関数に渡すコマンド Enum HH_COMMAND HH_DISPLAY_TOPIC = &H0 HH_HELP_FINDER = &H0 HH_DISPLAY_TOC = &H1 HH_DISPLAY_INDEX = &H2 HH_DISPLAY_SEARCH = &H3 HH_SET_WIN_TYPE = &H4 HH_GET_WIN_TYPE = &H5 HH_GET_WIN_HANDLE = &H6 HH_GET_INFO_TYPES = &H7 HH_SET_INFO_TYPES = &H8 HH_SYNC = &H9 HH_ADD_NAV_UI = &HA HH_ADD_BUTTON = &HB HH_GETBROWSER_APP = &HC HH_KEYWORD_LOOKUP = &HD HH_DISPLAY_TEXT_POPUP = &HE HH_HELP_CONTEXT = &HF HH_TP_HELP_CONTEXTMENU = &H10 HH_TP_HELP_WM_HELP = &H11 HH_CLOSE_ALL = &H12 HH_ALINK_LOOKUP = &H13 End Enum 'Windows APIの宣言 Public Declare Function HtmlHelp Lib "hhctrl.ocx" Alias "HtmlHelpA" _ (ByVal hwndCaller As Long, ByVal pszFile As String, _ ByVal uCommand As HH_COMMAND, dwData As Any) As Long そして、フォーム上で特定のキーが押されたとき、あるいはコマンドボタンのクリック時イベントプロシージャなどを使って、次のコードを実行します。これによってヘルプファイルを表示させることができます。 'APIでヘルプファイルc:\test.chmを表示 If HtmlHelp(0, "c:\test.chm", HH_HELP_CONTEXT, ByVal 2001&) = 0 Then MsgBox "ヘルプを表示できません!", vbOKOnly + vbExclamation End If ※4番目の引数に指定している数値”2001”はc:\test.chmの先頭ページのトピックのマップ番号を表わしています。この数値はヘルプファイルごとに異なりますし、またヘルプファイルの作成者でないと分かりません。HTMLヘルプの作成方法やこの数値に関しては当サイトのAccess Study「Vol.3 HTML Help Workshop入門」を参考にしてみてください。 ※上記のヘルプファイル呼び出し用のコードをフォームごとに記述し、さらに”2001”の部分をそれぞれ他のマップ番号にすることによって、フォームごとに同じ.CHMファイル上の異なるページを開くこともできます。 |
|||
|
Copyright © T'sWare All rights reserved |