こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

VisualBasic6.0で状況依存ヘルプを表示したいです。

富士通PowerCOBOLV7.0で、プログラムを作っています。
そのプログラムで[ヘルプ]ボタンを押したら、HTML Help(*.chm)を起動するようにしたいのですが、COBOLから直接ヘルプファイルを起動できないようです。
そこで、COBOLから一旦VBのプログラムを呼んで、そのVisual Basicからヘルプファイルを呼ぶようにしようかと思います。
また、状況依存ヘルプとして、表示されている画面に関するヘルプを表示したいです。

Visual Basicから状況依存ヘルプを表示できるようなのですが、具体的にどうすれば良いのでしょうか。
MicroSoftのページを検索してみたけど、うまく見つけられません。

ヘルプファイルは、ヘルプましんで作りました。
Visual Basic6.0(ほぼ初心者)です。

よろしくお願いします。

投稿日時 - 2008-08-15 13:58:09

QNo.4252866

困ってます

質問者が選んだベストアンサー

あくまで方法論だけですが・・・

COBOLからVBを起動する時、コマンドラインを利用出来るのであれば、状況依存ヘルプの表示が可能になるかも知れません。
COBOLは利用した事がありませんので何とも云えませんが、
VB6であれば、HelpFileプロパティとHelpContextIDプロパティを使用して状況依存ヘルプを呼び出すことができます。

以下は例ですが、VB6で「help.exe」という実行ファイルを作成したとします。
コードは標準モジュールに記載します。
注意点として、プロジェクトプロパティで全般タブ内の「スタートアップの設定」を
「Sub Main」にしなければ動作しません。
(※あくまでサンプルです)

Sub Main()
Dim CommandLine As String
CommandLine = Command()
MsgBox CommandLine, , "コマンドライン取得"
End Sub

実行時に、「help.exe /1 2」とコマンドラインを与えてやると
コマンドライン取得というメッセージボックスに「/1 2」と表示されます。
「OK」を押せばhelp.exeは終了します。
念のためタスクマネージャで確認してみて下さい。

「/」を含む文字がコマンドラインになりますので、自由な文字を渡せます。
ただし、依存文字は駄目です。
あとは、文字を分解するなりして、ヘルプファイルを指定すれば良いかと。
この辺りは、VB側の処理になりますが、検索すればサンプルはいくらでも引っかかります。

注意しなければならないのは、VBを外部から起動していますので、
本体のCOBOLだけが終了するとVB側でエラーになる可能性があります。
本体のCOBOLが終了する時はVB側必ず終了する様にしないと、思わぬトラブルに遭います。

なお、ヘルプファイル作成については、シェアウェアですが、
「HTML Help for Visual Studio」があります。
Visual Basic関連の詳細な日本語資料も付いています。
参考にされてみてはいかがでしょうか?
http://www1.odn.ne.jp/tamura/

投稿日時 - 2008-08-17 00:41:07

お礼

教えていただいたページの「Visual BasicでのHTML Help利用」を見ながら、何とか状況依存ヘルプを表示する事ができました!
COBOL→VBへのコンテキストIDの受け渡しもできたので、何とかなりそうです。
まだVBを終了するタイミング等の問題は残ってますが、頑張ってみます。
どうもありがとうございました。

投稿日時 - 2008-08-23 16:45:20

ANo.1

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問