2001年2月26日 メールはこのアドレスへお願いします


(1) きっかけ
(2)
調査開始
(3) サンプルアーカイブ
(4) 参考URL

(1) きっかけ

 コンパイル済み HTML ヘルプファイルがシェアを伸ばしている。N-Calc もそろそろ CHM にしなければならないかもしれない。

 一大決心をして CHM の作成に取りかかる。すでに HTML ファイルはあるので,作業はある程度楽である。英語のドキュメントを読みながら作業を進める。分からない問題に突き当たると英語のドキュメントを読み漁るのはもちろん,考えつくことは片っ端から試してみる。場合によってはバイナリファイルを解析することもする。

 こうしたことが真の「生きる力」である。文部科学省の指導の元に長年日本の教育で行われてきた暗記中心の教育など,これからの情報化社会では,まるで役に立たないのは明かである。これからの社会ではルーチン・ワークしか出来ない人材は必要とされなくなる。特に教師のような人種は要注意である。

 試行錯誤の上,根本的な部分は出来上がったが,下記のような細部で不満が残った。

  1. ポップアップウィンドウの出し方が分からない
  2. ブラウズボタン(「次へ/前へ」ボタン)の出し方が分からない
  3. フォントサイズボタンの出し方が分からない
  4. 非スクロールエリアの出し方が分からない
4. については HTML でフレームを作れば良いことは分かっているので挑戦したが,コンパイルの時にエラーが出てしまう。あまり複雑な HTML では受け付けないのかも知れない。非スクロールエリアは必須という訳ではないので,今回は見送ることにする。

先頭に戻る UNIQUE LABORATORY に戻る


(2) 調査開始

 当然インターネットを駆使することにする。以前「インターネットって,大したこと無いですね」と言った人がいるが,私はそうは思わない。有史以来の大革命であると考える。

 Google で検索する。Google の検索ではリンク数の多いページ順に結果が表示されるので,有益なページに行き当たることが多い。程なく http://www.keiyu.com/index.htm を見つける。

 驚愕した。私が時間をかけて調べようとしたことが殆ど網羅されている。参りました。

 このページに書いてあることによって 1. と 3. については解決したが,依然として 2. が分からない。WinHelp では [<<] [>>] ボタンが付いていて,クリックすると次のトピックに移動できるようになっているため,パラパラとページをめくるように見るときは非常に便利である。Internet Explorer 付いている「戻る」「進む」ボタンと混同しないで頂きたい。「戻る」「進む」はブラウズしてきたページを戻ったりするためのボタンであり,次のトピックに移動するためのボタンでは無い。

 しかし,CHM ヘルプでは「前へ」「次へ」ボタンが付いているものをほとんど見かけない。次の図は Internet Explorer 5 のヘルプファイルである。

 私が知っている限りで唯一「前へ」「次へ」が付いているのは Windows Installer SDK だけである。

 なんとしても「前へ」「次へ」ボタンを付けたい。そこで Windows Installer ヘルプを調べると Msi.chm に対応した Msi.chi というファイルが付属している。開いて見るとバイナリファイルである。しかし可読可能な部分だけ読むと,たしかにこれが「前へ」「次へ」を表示する/しないに関係しているようである。この chi ファイルは http://www.keiyu.com/help/qa5.htm#501 によるとインデックスファイルらしいが,それ以上の情報は無い。

 実験として Msi.chi を ncalc.chi とリネームして ncalc.chm と同じフォルダに置いてみたが「内容が合わない」というエラーが出て表示が出来ない。やっぱり無理なのかと思い KeiYu HelpLab を読んでいると「表示中のトピックのフォントサイズを変えるには」という Q&A があることに気づく。「フォントサイズを変える」ボタンと「前へ」「次へ」ボタンはよく似ているので 0x3006 の16進数の数値に加算をしていけば良いだろうと狙いをつけて試してみる。0x700000 を加算すると「フォントサイズ」「前へ」「次へ」ボタンを表示できることが分かった。

 しかし「フォントサイズ」ボタンは期待したとおりに動作するが「前へ」「次へ」ボタンはグレーになったままで使用することが出来ない。MAP Number を設定しなければならないのだろうと思い,試してみるがグレーのままである。試行錯誤を続けた末,下記のように設定することで「前へ」「次へ」ボタンが動作するようになった。

 こうして満足のいくものが出来上がったが,Excel VBA の側から呼び出そうとしても Excel97 では呼び出せないことが判明した(Excel2000 なら OK である)。Excel97 の頃には CHM ヘルプなどなかったから,当然といえば当然ではある。ヘルプファイルを CHM にしてしまうと Excel97 しか持っていない人は N-Calc でヘルプファイルを見ることが出来なくなるので,せっかく作った CHM ヘルプではあるがアーカイブに同梱するだけにする。Excel97 でも使用できるようにするには WinHelp(*.hlp)でなければ駄目なようである。

先頭に戻る UNIQUE LABORATORY に戻る


(3) サンプルアーカイブ

先頭に戻る UNIQUE LABORATORY に戻る


(4) ContextID

http://www.developerfusion.com/show/39/8/

(5) 参考URL

先頭に戻る UNIQUE LABORATORY に戻る