2000年1月10日
「ヘルプファイルを作ろう」と思ったのは1998年の6月下旬のことでした。N-Calc にヘルプファイルを付けることが出来たらもっと使いやすくなるだろうなと思ったのでした。学校にある Visual C++ 4.0 に「Help Workshop」が付属していることは知っていたので,そのヘルプファイル(英語でした)を読んでみると確かに「Help Workshop」を使ってヘルプファイルを作ることが出来ると書いてありました。しかし,Visual C++ 4.0 には英語版しか付属しておらず,当然すべてが英語で書かれていていました。
英語のマニュアルを読むのには慣れていたのですが,さすがに読むスピードは日本語に比べると遅くなります。しかし,英語のヘルプファイルしかない以上,やむを得ないと思いながら長期戦で望む覚悟を決めました。
※ 現在では Microsoft Help Workshop 4.03 (hcwsetup.EXE) で無料でダウンロード出来ます。
しかし,ふと「PACK for WIN」で検索をしたら何か見つかるかもと思いながら検索をしてみました。すると「help95.lzh」と言うものが見つかりました。そこかかれていることを読むとヘルプファイルを作成するには次の手順を経ることが必要だと分かりました。
そこで,手始めに!とワードパッドを使って簡単なリッチテキスト形式のファイルを作ってみました。次にプロジェクトファイルを作ってコンパイルしようとしたのですが,エラーメッセージを吐いてコンパイルがストップします。そこで辞書片手に英語のエラーメッセージを解読すると,リッチテキスト形式が不正であるという意味のようであることが分かりました。そこで実験としてhelp95.lzhに付属していたファイルをワードパッドで開き,別の名前を付けて保存してコンパイルしてみました。すると予想通りコンパイルに失敗します。これで「Word95で作られたリッチテキスト形式はコンパイル出来るが,ワードパッドで作られたリッチテキスト形式はコンパイル出来ない」ことが確かめられました。
だったら Word を使えば良い訳なので学校にある Word 97 を使ってリッチテキスト形式のファイルを作って実験してみました。しかし,なんと!コンパイルに失敗します。エラーメッセージはワードパッドを使って失敗したときと同じでした。明らかに Word 95 が吐き出すリッチテキスト形式と Word 97 が吐き出すリッチテキスト形式は違うことが分かります。
さてそれではと言うわけで Microsoft 社の Web サイトに行ってみました。あれこれ探し回ったあげく,検索で「help」というキーワードで検索すると「[W_WD98]Word 97/98 の RTF が Help Workshop 4.01 でコンパイルできない」というそのものずばりが引っかかりました。
書かれていることを読むと Word 97/98 が吐き出すリッチテキスト形式は Help Workshop 4.02 以降でしかコンパイル出来ないと言うことが分かりました。さらに,このページから「Help Workshop 4.03」がゲット出来ることが書いてありました。だったら,「Help Workshop 4.03」をゲットしようと言うわけで簡単な質問にいくつか答えて,ゲットしました。
すでにhelp95.lzhに書かれていることは省略します。その後,私が調べてメモしておいた方が良さそうなことだけを列記します。
ヘルププロジェクトファイルを開き,「Config」を選択して次のように書いておくとヘルプファイルに「進むボタン」「戻るボタン」「終了ボタン」をつけることが出来る。0(ゼロ)ではありません。()(括弧)です。
[CONFIG] BrowseButtons() CreateButton("Execute","終了(&E)","Exit()")
ブラウズボタンを押したときの順番は,リッチテキスト形式を作成するときに「脚注」に「+」記号を使い,通し番号を付けることで制御する。
これはキーワードを設定したが,footnote title が設定されていないときに出る警告です。Windows Help では「しおり」を挟むことが出来るようになっています。footnote title は挟むしおりの名前のデフォルトのタイトルとして使用されます。これを設定していないと,しおりを挟もうとすると「無題 #16」のようなしおりの名前になってしまいます。
キーワードを付けた場合は「脚注」として「$」を使い,footnote title を設定したほうが良いようです。
help95.lzh の help3.rtf をコンパイルしたときに出る「Waring HC4013」は help3.rtf をテキストエディタで開いて1行目の
{\rtf1\ansi \deff0\deflang1033{
を
{\rtf1\ansi \deff6\deflang1033{
に書き直すと出なくなるようです。どうもフォントテーブルに無いフォントを指定しているのが警告の出る原因のようです。
どうも RTF ファイルは何かの拍子に変なフォント名を書き込んでしまう癖があるようです。私も RTF ファイルを編集して,コンパイルすると警告が出てしまう場面に何度も遭遇します。そのため頻繁にバックアップを取るように心掛けています。
新しいウィンドウを作ることによって,色つきのウィンドウや非スクロールエリアを持つウィンドウを作ることが可能です。ncalc.hpjをダブルクリックして「Windows」のボタンを押して「main」という名前の新しいウィンドウを作成しましょう。どうも「main」と言う名前のウィンドウは予約語のようで,この名前にしないと画面の隅っこの方にウィンドウが開かれてしまうようです。設定は次のようにします。(私もかなり試行錯誤したので,なかなかうまく行かないと思いますが…)
次に ncalc.rtf を開いて,非スクロールエリアにしたい行を選んで,「書式(O)」「段落(P)」の順に選択して「改ページと改行」のタブを選んで「次の段落と分離しない(X)」にチェックを付けておきます。また「インデントと行間隔」のタブを選んで「段落前(B)」「段落後(E)」で間隔を指定しておくと非スクロールエリアの上下間隔を調整出来ます。(Word 97 の場合です)
コンパイルするときに HelpContextID(MAP number や context number とも呼ばれるようである)を定義することで,へプルファイルの任意のページを表示することが可能です。
通常,各ページには Topic ID と呼ばれる番号を振っておきます。コンパイルするときに[MAP]セクションに Topic ID と数値の対応表を書き込んでおきます。
(9) HelpContextID
[MAP]
IDH_law=15
IDH_abstract=30
IDH_tables_of_food=40
これを利用するには Excel VBA 側で次のようなコードを書きます。
Private Sub CommandButton1_Click()
Application.Help "ncalc.hlp", 40
End Sub