長谷川 裕行 (はせがわ ひろゆき)
有限会社 手國堂 代表取締役
http://www.hirop.com/
テクニカルライターとして活躍。プログラミングに関する著書多数、DB Magazineなどにも多くの記事を提供している。 |
アプリケーションにオンラインヘルプを付けると、使い勝手が向上します。さほど複雑でない業務アプリケーションなら、紙のマニュアルだけでも十分かもしれません。しかし、ユーザーがパソコンや業務に不慣れな場合、オンラインヘルプの有無が使い勝手を左右することもあります。
オンラインヘルプの作成と、アプリケーションからの利用方法を紹介しましょう。
作成したアプリケーションの使い方を説明する方法として、かつては紙のマニュアルが一般的でした。しかし紙のマニュアルは次第に姿を消し、今ではデジタル化したオンラインヘルプが主流となっています。
- 紙のマニュアルとオンラインヘルプ -
市販アプリケーションの場合、印刷した冊子式のマニュアルにはインストールと初期設定程度までしか記述しないで、あとはオンラインヘルプに任せるのが一般的です。これには、パッケージサイズを小さくして流通経費を抑える目的もありますが、ユーザーにとってもあの分厚いマニュアルを開くことなく、マウスの操作で必要な情報を得られるのはありがたいことです。
市販アプリケーションの場合、オンラインヘルプにはWindowsのヘルプシステムで閲覧できるヘルプファイルを使うのが普通です。
Windowsのヘルプシステムはアプリケーションの「ヘルプ」メニューから起動できるため、ユーザーが操作に迷ったらその場で説明を表示できます。また、[F1]キーを押すことでその場の状況に応じた説明を表示させることも可能です。
- 業務アプリケーションにヘルプは不要? -
しかし、特定の業種や特定の組織でしか使用しない業務用アプリケーションの場合、本格的なヘルプは必須ではありません。業務アプリケーションは市販アプリケーションとは異なり、その目的が単一的で、しかもユーザーのほとんどは「そのアプリケーションでどのような仕事をするのか」を理解しています。
そのため、アプリケーションの持つ機能自体が少なく、かつ明確なものとなります。商品の販売記録を入力する画面で、
「数量」テキストボックスには販売した商品の数量を入力します。
などと説明する必要はないでしょう。それはアプリケーションの使い方というより、「仕事の進め方」の範疇に属します。
もちろん、依頼主からの要請でそのような親切な説明をしなければならないこともあるでしょう。しかしたいていの場合、そのアプリケーションの概要と、全体の流れ、各画面の説明などを記述し、あとは細部の注意点を述べるにとどめておいても不都合はありません。
- HTMLファイルが便利 -
そういう意味で、業務アプリケーションの操作説明は、ブラウザで表示されるHTMLファイルとするのが手軽で便利です。アプリケーションの規模が小さければ、通常のテキストファイルによる簡単な説明だけでも十分でしょう。
Windowsのヘルプシステムで読み込まれるヘルプファイルを作るには、その構造をしっかり設計し、アプリケーションから表示されるよう設定しなければなりません。作り直すにも手間がかかります。
しかしHTMLファイルなら、市販のHTMLエディタや通常のテキスト・エディタで作成できます。しかも、ハイパーリンクを使って目次を作ったり、他の項目を参照できるようにできますし、画像や音声を挿入することも簡単です。
組織内だけで使用するアプリケーションの場合、アプリケーションをサーバーに保存し、配布とインストールをネットワーク上で実行することも可能です。その場合、操作説明用のHTMLファイルをWebサーバーに保存し、みんなが自由に閲覧できるようにしておけば、ユーザーが個々にファイルをコピーする必要さえありません。
- オンラインヘルプのベースもHTML -
HTMLファイルの作り方に関しては、ここで説明するまでもないでしょう。業務アプリケーションの説明程度なら、Visual InterDevなどの大がかりなツールを使う必要もありません。
ハイパーリンクを指定する<A>タグ、画像を挿入する<IMG>タグをうまく使えば、簡単に作れます。むしろ、ヘルプの構造をしっかり設計する方が大切です。基本的には、冊子式のマニュアルに記載するべき内容を、そのまま――あるいは多少アレンジして――HTML化するだけです。
Windowsのヘルプシステムでも、その土台となるのはHTMLファイルです。HTMLファイルさえ作成しておけば、そこからWindowsのヘルプファイルを生成することも可能です。
- 普通の文書ファイルでもかまわない -
アプリケーションの説明を、Wordの文書ファイル(docファイル)で作成する方法もあります。docファイルは、Windowsに標準で備わっているワードパッドで表示できるため、実行するコンピュータにWordがインストールされていなくても大丈夫です。
その場合は、ワードパッドでも正しく表示できるよう、あまり凝った編集を行わないようにします。段組やレイアウト枠・文書枠は使えません。Wordの基本はdoc形式ですが、リッチテキスト形式(rtfファイル)で保存するのがよいでしょう。
比較的小規模で操作がすぐに覚えられるアプリケーションなら、オンラインヘルプは必須ではありません。しかし、どうしてもWindowsのヘルプシステムを利用しなければならない場合もあるでしょう。Windowsヘルプファイルの作成方法を、簡単に紹介しておきましょう。
- 2通りのヘルプ -
Windowsのヘルプシステムには2通りあります。従来の手法を受け継いだWinHelp形式と、HTMLファイルを元にしたHTML Help形式です。
WinHelpはWindows 95、Windows NT 4.0までの標準形式で、Office 97などに使われていました。他にもこの形式のヘルプを用いたアプリケーションはたくさんあります。
HTML HelpはWindows 98、Windows 2000以降での標準形式で、Office 2000やVisual Studio 6.0に備わっているため、そのインターフェイスはみなさんご存じでしょう。
ここでは、HTML形式のヘルプを作成する手順を紹介します。
- ヘルプの作成手順 -
画面1のような販売管理アプリケーションのフォームで、HTMLヘルプが表示されるようにします。HTML形式のヘルプは、HTML Help Workshopというツールで作成します。手順は以下のようになります。
1. |
ヘルプ用のHTMLファイルを作る |
2. |
HTML Help Workshopでヘルププロジェクトを作る |
3. |
プロジェクトにHTMLファイルを追加する |
4. |
目次と索引項目を設定する |
5. |
.コンテキスト番号を設定する |
6. |
ヘルプファイルを生成する |
画面1:販売管理アプリケーションの起動画面
HTML Help Workshopのインストール方法と、最新版の入手方法を紹介しておきます。
- インストール -
HTML Help Workshopは、Visual C++またはVisual Studioに含まれています。但し標準ではインストールされないため、別途手動でインストールする必要があります。
Visual C++またはVisual StudioのCD-ROM・DISK1のHtmlHelpフォルダにHtmlhelp.exeというファイルがあります。これを実行すれば、HTML Help Workshopがインストールされ、スタートメニューから実行できるようになります。
- 最新版の入手先 -
最新のHTML Help Workshopは、MSDN(Microsoft Developers Network)Webサイトのライブラリから入手できます。Visual C++やVisual Studioを持っていない人も、ここからダウンロードして利用できます。
MSDN Online Library(英語サイト)
http://msdn.microsoft.com/library/
ウィンドウ左側のフレームで項目を選択できるので、以下のようにたどってください。
Other SDK Documentation
┗HTML Help Workshop
┗Microsoft HTML Help
右に表示された本文から、“Visit the HTML Help download page”をクリックすれば、HTML Help Workshopのダウンロードページが表示されます。
原稿執筆時点では、以下のURLで直接ダウンロードページが表示されましたが、ライブラリの構成は時々変更されるため、目的のページが表示されない場合は、上記の手順でページをたどってください。
http://msdn.microsoft.com/library/default.asp?
URL=/library/tools/htmlhelp/chm/hh1start.htm
- 注意 -
HTML Help Workshopは英語版のみです。
日本語のMSDNサイトには、HTML Helpコンポーネントの説明ページはありますが、HTML Help Workshopのダウンロードページは存在しません。
Visual StudioやOffice 2000に付属しているオンラインヘルプ(MSDNライブラリ)に掲載されているHTML Help Workshopの入手先URLは、現在では無効となっているようです(2001年2月6日現在)。
HTMLヘルプの内容は、項目別に作成されたHTMLファイルです。まずこれらを準備します。
- HTMLファイルの構成を決める -
1項目につき1つのHTMLファイルを作成します。ここでは、表1のような構成としました。ヘルプの目次はHTML Help Workshopで作成するため、目次用のHTMLファイルは不要です。実際には、さらに細かい項目を用意し、それぞれHTMLファイルを作成する必要があります。
1つのHTMLファイルに複数の項目を記述する場合は、ブックマークを使用します。
ヘルプ用のHTMLファイル内にも、一般的なHTMLファイルと同じように画像を挿入したり、他のページやブックマークへのリンクを設定できます。具体的な内容は、サンプルを参考にしてください。
表1:ヘルプ用HTMLファイルの構成
- 全体の構造を決める -
HTMLファイルの作成とともに、ヘルプ項目の階層構造も考えておきましょう。ここでは、以下のような形にします。
システムの概要
操作手順★
|
|
基本処理
受注処理※
日締処理
月締処理
年締処理
|
基本データの管理★ |
|
データ管理の概要
得意先の追加
得意先の削除※
得意先の訂正※
商品の追加※
商品の削除※
商品の訂正※ |
★マークの項目はその下の項目をまとめる見出し項目で、HTMLファイルは表示されません。
※マークの項目は、サンプルでは作成していません。
2.HTML Help Workshopで
ヘルププロジェクトを作る |
以下の手順で、ヘルププロジェクトを作成します。
(1) |
プロジェクトを作成する
HTML Help Workshopでは、ヘルプをプロジェクトで管理します。新たなヘルププロジェクトを作るには、HTML Help Workshopのメニューから「File」→「New」を選択し、画面2のようなリストから“Project”を選択します。
|
画面2:ヘルププロジェクトを新規作成する
|
(2) |
旧形式の変換
画面3のようなダイアログボックスがオープンします。チェックボックスをチェックすれば、従来のヘルプシステム(WinHelp)で用いられていたプロジェクトファイルを、HTML Helpのプロジェクトに変換できます。
ここでは新規に作成するので、チェックしないで[次へ]をクリックします。
|
画面3:WinHelpのプロジェクトを変換できる
|
(3) |
保存先と名前を入力する
画面4のようになるので、テキストボックスに作成するプロジェクトの場所と名前(パス)を入力します。[Browse]ボタンをクリックすれば、ファイル保存のダイアログボックスがオープンするので、保存先とファイル名を指定します。ファイル名がプロジェクト名となり、同時にヘルプファイルの名前にもなります。
ファイル名の拡張子は.hhpとなります。
|
画面4:プロジェクト名を入力する
|
(4) |
既存ファイルを指定する
画面5のようになるので、あらかじめ用意されているファイルをチェックします。
HTML Help table of contents:項目名とHTMLファイルの関連を記述したコンテンツファイル(拡張子.hhc)
HTML Help index:ヘルプ内の用語を列挙したインデックスファイル(拡張子.hhk)
HTML files:HTMLファイル(拡張子.htmまたは.html)
ここではHTMLファイルだけを用意しているので、「HTML files」をチェックして[次へ]をクリックします。 |
画面5:既存のファイルをチェックしておく
プロジェクトを作成したら、先に作成したHTMLファイルをプロジェクトに追加します。
(5) |
HTMLファイルを追加する
プロジェクトにHTMLファイルを追加する画面になるので、[Add]ボタンをクリックしてHTMLファイルを選択します。複数のファイルを一度に指定することもできます。
ここでは、001.htm~005-1.htm、about.htmを追加します。
HTMLファイルを追加して[次へ]をクリックし、最後に[完了]をクリックすればプロジェクトが生成されます。
|
一通り指定が終わると、画面6のようになります。ここから、コンテンツ(目次)とインデックス(用語索引)を作成し、それらにHTMLファイルを結びつけていきます。ヘルプで表示される個々の項目をトピック(topic)と呼び、HTMLファイルをトピックファイルと言います。
ここでさらにHTMLファイルを追加したい場合は、ボタンをクリックし、[Add]ボタンをクリックしてファイルを選択します。
画面6:プロジェクトの設定が完了した
ヘルププロジェクトでは、各トピック(HTMLファイル)を階層構造で示したコンテンツ(目次)と、用語の解説を行うインデックス(索引)を用意します。これらは、先述したように拡張子.hhc(コンテンツ)と拡張子.hhk(インデックス)のファイルとして準備します。
|
|
- コンテンツファイルと -
- インデックスファイルを作る -
左側のウィンドウから「Contents」タブをクリックすると、画面7のようなダイアログボックスがオープンします。
Create a new contents file:コンテンツファイルを新規作成します
Open an existing contents file:既存のコンテンツファイルを指定します
ここでは新たに作成するので“Create a new contents file”をONにして[OK]をクリックします。ファイルの新規作成ダイアログボックスがオープンするので、そこでファイルの場所と名前を指定します。
保存場所はヘルププロジェクトと同じにし、ファイル名は標準の“Table of Contents.hhc”としておきます。
「Index」タブをクリックすれば、インデックスファイルの作成/指定を選択するダイアログボックスがオープンします。同じ要領で作成しておきます。インデックスファイルもプロジェクトと同じ場所で、名前は標準の“Index.hhk”としておきましょう。
画面7:コンテンツファイルの作成/指定を選択する
- コンテンツの作成 -
「Contents」タブをクリックし、先に設計した項目の階層構造に従ってコンテンツを作っていきます。
コンテンツには、見出し項目と内容を具体的に記述したトピック項目があります。まず見出しを作り、その下に関連するトピックを列挙するのが一般的です。
見出しを追加する
マウスの右ボタンをクリックすると、画面8のようなメニューが表示されます。
「Insert Heading...」を選択すると画面9のような「Table of Contens Entry」ダイアログボックスがオープンします。“Entry title”に項目名の文字列を入力します。最初の見出し項目は「システムの概要」で、この項目を選択するとabout.htmが表示されるようにしたいので、HTMLファイルを設定します。
画面8:コンテンツを作成する
画面9:見出し項目を追加する
HTMLファイルを指定する
[Add]をクリックすると画面10のように「Path or URL」ダイアログボックスがオープンし、リストからHTMLファイルを選択できるようになります。このとき“HTML titles”リストに表示されるのは、HTMLファイルの<TITLE>タグで設定したタイトルです。選択したタイトルのファイル名が、下の“File or URL”に表示されます。
HTMLファイルを選択して[OK]をクリックすれば、“Files/URLs and their information types”にHTMLファイル名が表示されます。これで、見出し項目にHTMLファイルが設定されました。[OK]をクリックしてダイアログボックスを閉じます。
画面10:見出しに対応するHTMLファイルを選択する
残りの見出しを作る
次に、「操作手順」と「基本データの管理」という見出しを作ります。これらはその下に複数のトピックを並べるため、HTMLファイルを設定しません。“Entry title”に見出し文字列を入力するだけとします。
トピックを追加する
見出しができたら、次に見出しの下のトピック項目を追加します。見出し項目を選択して右ボタンをクリックし、メニューから「Insert Topic...」を選択します。後の要領は見出しの場合と同じで、「Table of Contens Entry」ダイアログボックスの“Entry title”にトピック項目名の文字列を入力します。
[Add]をクリックして「Path or URL」ダイアログボックスの“HTML titles”リストから、トピックとして表示するHTMLファイルを選択すれば、トピック項目にHTMLファイルが結びつけられます。
残りのトピックを追加する
同じ要領で、トピック項目を追加してHTMLファイルを結びつけていきます。
項目の階層構造を変更する場合は、マウスのドラッグか左端の[↑][↓]ボタンで上下の順を、[←][→]で左右(階層の深さ)を操作できます。
項目を削除するには、設定した項目の内容を変更するにはをクリックします。
- インデックスの作成 -
インデックスの作成も、基本的にはコンテンツの場合と同じです。用語を入力して、それに関連するHTMLファイルを設定していきます。1つの用語に複数のHTMLファイルを設定することもできます。
画面11のように「Index」タブをクリックして右ボタンのメニューから「Insert Keyword...」を選択すると「Index Entry」ダイアログボックスがオープンします。画面12のように“Keyword”に用語(キーワード)を入力し、[Add]をクリックしてHTMLファイルを選択していきます。
HTML Help Workshopではさらに細かな設定を行えるのですが、業務アプリケーションの場合、あまり複雑なヘルプを作る必要はないでしょう。紙数の都合もあるので、簡単なものにしておきます。
プロジェクトの具体的な構成は、サンプルを参考にしてください。
画面11:メニューから「Insert Keyword...」を選択する
画面12:用語に関連したHTMLファイルを追加する
VBで作ったアプリケーションからヘルプを表示させる場合、そのときの処理状況に応じた項目が表示されるようにすると便利です。そのためには、各トピックにコンテキスト番号(Help ContextID)を設定します。
- コンテキスト番号とトピック -
アプリケーションのフォームやテキストボックスなどにコンテキスト番号を設定すれば、ユーザーが[F1]キーを押したときに、設定されたコンテキスト番号に対応するトピックが表示されるようになります。
HTMLヘルプでは、コンテキスト番号の設定が少し面倒です。以下のようにします。
(1) |
記号定数と番号を対応させたヘッダファイルを作る |
(2) |
トピックにコンテキスト番号を設定する |
- 記号定数と番号を対応させた -
- ヘッダファイルを作る -
ヘッダファイルとは、拡張子.hのC言語ヘッダファイルです。通常のエディタで作っても、HTML Help Workshopのメニューから「File」→「New」で“Text”を選択して作成しても構いません。
保存先はヘルププロジェクトと同じフォルダにし、ファイル名には必ず拡張子.hを付けて保存します。ここでは、ex34hid.hという名前で、リスト1のような内容としました。
書式は
#define <記号定数> <数値>
で、記号定数に数値を割り当てます。#defineという命令は、VBのConstステートメントと同じ働きをします。
リスト1:コンテキスト番号を定義するヘッダファイル
- トピックにコンテキスト番号を設定する -
をクリックすると、「HtmlHelp API information」ダイアログボックスがオープンします。
「Map」タブで[Header file]をクリックし、先に作って保存したヘッダファイル(例ではex34hid.h)を選択します。これで、プロジェクトに記号定数の定義が取り込まれます(画面13)。
「Alias」タブをクリックし、[Add]ボタンをクリックして「Alias」ダイアログボックスをオープンさせ、“Whenever this constant...”にヘッダファイルで設定した記号定数を入力し、その下の“Use it to refer this HTML file”のリストから記号定数に対応するHTMLファイルを選択して[OK]をクリックします(画面14)。
これで、HTMLファイル(トピック)にヘッダファイルで設定した記号定数に対応する数値(コンテキスト番号)が結びつけられます。
上記の操作を、コンテキスト番号を設定したトピックの数だけ繰り返します。ダイアログボックスを閉じると、左側のウィンドウに最終的な設定が画面15のように表示されます。
画面13:ヘッダファイルを取り込ませる
画面14:コンテキスト番号とHTMLファイルを結びつける
画面15:ヘッダファイルやコンテキスト番号の設定が表示される
ここまでで、ヘルププロジェクトが一通りできあがりました。コンパイルしてみましょう。
メニューから「File」→「Compile」を選択すると、画面16のようなダイアログボックスがオープンします。“Project file”に現在編集中のプロジェクトファイルが表示されています。
[Compile]をクリックすれば、プロジェクトの設定に基づいてコンパイルが行われ、拡張子.chmのヘルプファイルができあがります。
画面16:プロジェクトをコンパイルしてヘルプを生成する
標準のトピックを指定する
HTML Help Workshopでヘルプが起動して一番最初に表示されるトピックを指定するには、以下のようにします。
(1) |
左側のウィンドウをダブルクリックして「Options」ダイアログボックスをオープンさせる |
(2) |
“Default file”のリストから、最初に表示させたいHTMLファイルを選択する |
(3) |
[OK]をクリックする |
「Options」ダイアログボックスでは、“Title”テキストボックスでヘルプのタイトルを、“Font”で表示に使用するフォントも指定できます。
画面17:標準のトピックを指定できる |
ヘルプファイル(拡張子.chm)ができあがったら、それをVBで作ったアプリケーションで利用できるようにします。
- HelpFileプロパティ -
ヘルプファイルは、基本的にアプリケーションと同じフォルダに保存することにします。アプリケーションにヘルプファイルを設定するには、アプリケーション・オブジェクトのHelpFileプロパティにヘルプファイルの場所と名前を設定します。
VBのメニューから「プロジェクト(P)」→「~のプロパティ(E)」を選択し、「プロジェクトプロパティ」ダイアログボックスの「全般」タブにある「ヘルプ ファイル名(H)」にヘルプファイル名を入力しても構いません。
サンプルでは、以下のようにしてアプリケーションと同じフォルダにあるヘルプファイルを指定しています。
Private Sub Form_Load()
App.HelpFile = App.Path & "\ex34.chm"
End Sub |
実際にはこれだけで、アプリケーションの実行中に[F1]キーを押せばヘルプが表示されるようになります。
- 状況に応じてトピックを切り替える -
処理状況に応じて表示するトピックを切り替えるには、フォームやテキストボックスなどにコンテキスト番号を設定します。コンテキスト番号はHelpContextIDプロパティで設定します。
例えば、テキストボックス“txtUserName”にコンテキスト番号“1230”を設定するなら、以下のようにします。
txtUserName.HelpContextID = 1230 |
プロパティシートで直接設定しても構いません。
- 「ヘルプ」メニューでヘルプを表示させる -
アプリケーションの「ヘルプ(H)」→「ヘルプ(H)」メニューを選択してヘルプを表示させるには、メニュー項目のClickイベントで[F1]キーを押した状況を設定します。キーの送信にはSendKeysステートメントを使い、以下のようにするだけです。
本来なら、以下のようにしてHTML HelpのAPIを利用するFunctionプロシージャを定義し、そこからヘルプを起動する必要があるのですが、ただ1回の処理のためにたくさんのコードを記述するのは無駄なので、上記のような方法を採りました。
Declare Function HtmlHelp_
Lib "HHCtrl.ocx" Alias "HtmHelpA" _
(ByVal hwndCaller As Long, _
ByVal pszFile As String, _
ByVal uCommand As Long, _
dwData As Any) As Long |
リスト2に、今回のサンプルのソースコードを掲げておきます。
ヘルプのサンプルなので、コマンドボタンなどは一切動作しません。[F1]キーを押すか、メニューから「ヘルプ(H)」→「ヘルプ(H)」を選択すれば、画面18のようなヘルプが表示されます。
画面18:アプリケーションからヘルプを表示する
リスト2:メニューを表示するアプリケーションのソース
アプリケーションをコンパイルしたら、ヘルプファイルとともに配布しなければなりません。ユーザーのコンピュータにHTMLヘルプを表示するコンポーネントがインストールされていれば、ヘルプファイルを追加するだけで済みます。
しかし多くの場合、ヘルプファイルとともに必要なコンポーネントも配布する必要があるでしょう。exeファイルとともにヘルプファイルとコンポーネントを配布する場合は、ディストリビューションウィザードでSetup.exeを生成します。
ディストリビューションウィザードは、HTMLヘルプシステムに必要なコンポーネントの依存関係を処理し、適切な配布用パッケージを生成してくれます。
但し、アプリケーションの動作テストとともに、インストール先でヘルプが正しく表示されるかどうかも、必ずチェックするように心がけましょう。
- 注意 -
今回のサンプルは、VBのプロジェクトとexeファイル、HTMLヘルプのためのHTMLファイルとヘルププロジェクトの2つに分かれています。
ヘルププロジェクトを開いて設定を確認するには、HTML Help Workshopがインストールされていなければなりません。また、サンプルアプリケーションでヘルプを表示させるには、HTML Helpのコンポーネントがインストールされている必要があります。HTML Help Workshopをインストールすれば、これらのコンポーネントもインストールされます。
約3年間続いた「業務アプリ構築法」は今回で終了し、「番外編」としてあと2回「仕様設計のテクニック」を取り上げる予定です。
プログラムそのものの作成技法はあちこちで紹介されていますが、その前段階である仕様設計やデータ構造の検討などは、あまり紹介されていません。特に業務アプリケーションではデータベースの設計も関連してくるため、しっかりした設計が重要になります。
できれば、実際の仕様書の見本なども提供していくつもりです。
VBでデータベースを使った業務アプリを作るためのテクニックと考え方に絞って、様々な情報を提供してきました。ご意見・ご感想・ご声援をいただき、大変感謝しています。ありがとうございました。
この連載が、みなさんのお役に立てたなら、この上ない幸いです。
VBプロジェクトファイル
のダウンロード(Ex34.LZH)
(LZH形式 27.3KB)
ヘルププロジェクトファイル
のダウンロード(Ex34Help.LZH)
(LZH形式 41.8KB)
|