ヘルプファイルの自作と起動方法について

このQ&Aのポイント
  • VB6初心者からの質問です。HelpDesignerを使用してヘルプファイルを作成しましたが、それを自作のVB6アプリケーションから起動したいです。shell関数を使用して起動を試みましたが、上手くいきませんでした。どのようにすれば良いでしょうか?
  • ヘルプファイル名はHelpsim.hlpです。解決方法をご存知の方がいらっしゃいましたら、教えていただけると助かります。
  • VB6初心者がHelpDesignerを使って作成したヘルプファイルを自作のVB6アプリケーションから起動する方法を教えてください。shell関数を使用して試みましたが、エラーが発生しました。ヘルプファイルの名前はHelpsim.hlpです。
回答を見る
  • ベストアンサー

ヘルプの起動のしかた

こんにちは。 最近、VB6を始めた初心者です。 HelpDesignerでヘルプファイルを作成したのですが、これを 自作したVB6アプリケーションから起動をかけるようにしたいのですが どのようにすれば良いのでしょう? shellを使い Private Sub suihelp_Click()  Dim retVal As Variant  retVal = Shell("App.Path & " \ " & Helpsim.hlp") End Sub としてみたのですがダメでした。 ヘルプファイル名はHelpsim.hlpです。どなたか分かる方がみえましたら よろしくお願いします。

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

  • ベストアンサー
  • project-a
  • ベストアンサー率54% (107/195)
回答No.1

ヘルプファイルの表示には、APIを使用します。 以下のようにすれば、OKだと思います。 (例) <<標準モジュール>> Declare Function WinHelp Lib "user32" Alias "WinHelpA" (ByVal hwnd As Long, ByVal lpHelpFile As String, ByVal wCommand As Long, dwData As Any) As Long Public Const HELP_CONTEXTPOPUP = &H8& Public Const HELP_COMMAND = &H102& Public Const HELP_FINDER = &HB Public Const HELP_FORCEFILE = &H9& Public Const HELP_HELPONHELP = &H4 Public Const HELP_INDEX = &H3 Public Const HELP_KEY = &H101 Public Const HELP_MULTIKEY = &H201& Public Const HELP_PARTIALKEY = &H105& Public Const HELP_QUIT = &H2 Public Const HELP_SETCONTENTS = &H5& Public Const HELP_SETINDEX = &H5 Public Const HELP_SETWINPOS = &H203& Public Const HELP_CONTEXT = &H1 ------------------------------------------------ <<画面>> 'フォームを読み込んだ。 Private Sub Form_Load() 'ヘルプファイルの指定 If Right$(App.Path, 1) = "\" Then App.HelpFile = App.Path + "Helpsim.hlp" Else App.HelpFile = App.Path + "\Helpsim.hlp" End If End Sub 'フォームを閉じた。 Private Sub Form_Unload(Cancel As Integer) Dim ret As Long ret = WinHelp(hwnd, App.HelpFile, HELP_QUIT, 0) End Sub 'ヘルプボタンを押した(目次の表示) Private Sub suihelp_Click()  Dim retVal As Long retVal = WinHelp(hwnd, App.HelpFile, HELP_FINDER, 0) End Sub

kamechan
質問者

お礼

project-aさま 完璧です。ありがとうございました。これでやっとヘルプファイルが読み出せるようになりました。 VBを使用していろいろなソフトが作るのが最近楽しくてたまりません。 これからもお世話になるかも知れませんがその時はよろしくお願いします。 では

関連するQ&A

  • ヘルプの起動について

    VB6のアプリでヘルプを起動しようとして Shell("winhelp.exe AAA.hlp", 1) というコマンドをいれているのですが、WinXPでは上手く呼び出せません。 winhelp.exeは16bit版という話も聞いたことはあるのですが、 32bit版のヘルプビューワーは何というファイル名でしょうか? また、OSによらないヘルプの呼び出し方はあるのでしょうか? よろしくお願いします。

  • VB6・一括でファイル名の変更したいのですが

    VB6でファイルリネームツールを作成しています。 DriveListBox・DirListBox・FileListBox・TextBox*2・コマンドボタン*3を配置しています。 実行して、ドライブ・ディレクトリを選択して、FileListBoxに表示されいるファイルをコマンド2ボタンで全部Text2に表示させています。 そこで、text2からファイル名を直接編集して、コマンド3ボタンで編集したファイル名で保存したいのですが、どう記述すれば良いのでしょうか。 Text1とコマンド1の状態は、FileListboxでクリックしたファイルをText1に表示・編集して、コマンド1でファイル名変更できる状態です。 コマンド3のコードですと、 >Set fsofile = fso.GetFile(Dir1.Path & "\" & File1.FileName) の行が、実行エラー53、ファイルが見つかりません。となります。 宜しくお願いします。 現在のコードです。 Private Sub Command1_Click()   Dim fso As New FileSystemObject   Set fsofile = fso.GetFile(Dir1.Path & "\" & File1.FileName)   fsofile.Name = Text1.Text   File1.Refresh end sub Private Sub Command2_Click()   Text2.Text = Clear   Dim fso As New FileSystemObject   For Each myFile In fso.GetFolder(Dir1.Path & "\" & File1.FileName).Files     Text2.Text = Text2.Text & myFile.Name & vbCrLf   Next End Sub Private Sub Command3_Click()   Dim fso As New FileSystemObject   Set fsofile = fso.GetFile(Dir1.Path & "\" & File1.FileName)   fsofile.Name = Text2.Text   File1.Refresh End Sub Private Sub Dir1_Change()   File1.Path = Dir1.Path End Sub Private Sub Drive1_Change()   Dir1.Path = Drive1.Drive End Sub Private Sub File1_Click()   Text1.SetFocus   Text1.Text = File1.FileName End Sub Private Sub Form_Load()   Text1.Text = ""   Text2.Text = ""   Dir1.Path = App.Path   Drive1.Drive = App.Path End Sub

  • AppActivate

    エクセルで Sub test() Dim path As String Dim taskID As Double path = "C:\Windows\System32\notepad.exe" taskID = Shell(path) Call AppActivate(taskID) End Sub を実行しても、アクティブ(前面表示)されません。 シートにコマンドボタンを設置して、 Private Sub CommandButton1_Click() test End Sub としても、エクセルの後ろ側に開いてしまいます。 http://note.phyllo.net/?eid=1106208 のサイトを参考にしました。 VB6のサイトを見てるから駄目なのでしょうか? エクセルでやりたいです。

  • フォルダやドライブ変更するとリネームできなくなります。

    現在VB6でファイルリネームツールを作成しています。 DriveListBox・DirListBox・FileListBox・TextBox・コマンドボタンを配置しています。 ドライブ・ディレクトリ・ファイルを順に選択して、選択したファイル名をテキストボックスに表示させ、ファイル名を テキストボックスで直接編集してコマンドボタンでリネームを実行しています。 以下のコードで実行すると、 起動して最初に表示されるVB98フォルダ内のファイル名はコマンドボタン1・2どちらでも 変更できますが、ドライブやディレクトリを変更して、Textboxでリネームをしコマンドボタンを押すとエラーが出てリネームできません。 コマンド1ボタンエラー >Set fsofile = fso.GetFile(File1.FileName) コマンド2ボタンエラー >Name nname As newname となります。どちらもエラー番号53で"ファイルが見つかりません"とでます。 どのように記述すればディレクトリやドライブを変更しても名前を変えられるでしょうか?宜しくお願いします。 Private Sub Command1_Click()   Dim fso As New FileSystemObject   Set fsofile = fso.GetFile(File1.FileName)   fsofile.Name = Text1.Text   File1.Refresh End Sub Private Sub Command2_Click()   Dim nname As String   Dim newname As String   nname = File1.FileName   newname = Text1.Text   Name nname As newname   File1.Refresh End Sub Private Sub Dir1_Change()   File1.Path = Dir1.Path End Sub Private Sub Drive1_Change()   On Error GoTo Derr   Dir1.Path = Drive1.Drive   Exit Sub Derr:   If Derr = 68 Then     MsgBox "デバイスの準備ができていません。", vbCritical   Else     MsgBox "ドライブにエラーがあります。", vbCritical   End If End Sub Private Sub File1_Click()   Text1.Text = File1.FileName End Sub Private Sub Form_Load()   Text1.Text = ""   Dir1.Path = App.Path   Drive1.Drive = App.Path End Sub

  • VBからExcelのテキストを指定して開きたい

     VBのアプリケーションから文書名を指定してエクセルを起動したいのですが 出来なくて困っています。ちなみにコードは下記のとおりです。どこに問題があ るのか教えていただけないでしょうか。 Private Sub Command1_Click() Dim lngReturnCode As Long Dim strFileName As String strFileName = "AllTitles.csv"   lngReturnCode = ShellExecute(Me.hwnd, _ "open c:\***\***.xls", _ strFileName, _ vbNullString, _ App.Path, _ SW_SHOWNORMAL) End Sub

  • このような使い方は間違っているのでしょうか?(VB.NET2002)

    このような使い方は間違っているのでしょうか?(VB.NET2002) Dim count As Int16 Private Sub JOB(ByVal x) x = x + 1 TextBox1.Text = x End Sub Private Sub Button1_Click(・・・・ JOB(count) End Sub

  • VBAでファイルを消したい

    こんばんわ! VBAでエクセルファイルをバックアップしながら使用しているのですが、10個以上ファイルが溜まったら一番古いものを消したいです。 途中まではできているのですが、古いファイルを選択する方法が分かりませんToT 途中までのソースを乗せますので、アドバイスの程よろしくお願いいたします。 ================== Private Sub backup_bot_Click() Dim Path As String, WSH As Variant Dim fc As Long Dim fn As String 'マイドキュメントにバックアップ Set WSH = CreateObject("WScript.Shell") Path = WSH.SpecialFolders("MyDocuments") & "\test" If Dir(Path, vbDirectory) = "" Then MkDir (Path) End If 'ファイルコピー FileCopy "c:test_date\aaa.xls", Path & "\aaa" & Format(Now, "yyyymmdd") & ".xls" 'ファイル数確認 fn = Dir(Path & "\aaa*.xls") Do While fn <> "" fc = fc + 1 fn = Dir() Loop '10件以上消去 If fc > 10 Then 'ここが分かりません! End If End Sub ================== あ~ちなみにoffice2003エクセルを使用しています。 XP以降のOSで動かしたいです!

  • VB6.0でPowerPoint上のイベントを取得したい

    VB6.0からPowerPointのファイルを開き、 PowerPoint上のイベントを取得したいのですが、 方法が分からず困っております。 具体的には、ツールバーのプレビューボタンが クリックされたことをVBで検知したいと考えています。 現状では下記のように、Applicationの閉じるイベントは 取得できたのですが、そこからどうして良いか分からない状態です。 良きアドバイスをお願い致します。 ---------------------------------------------------- Option Explicit Private WithEvents PPTApp As PowerPoint.Application '■パワポを開く Private Sub Command1_Click() Set PPTApp = New PowerPoint.Application PPTApp.Visible = True PPTApp.Presentations.Open (App.Path & "\test.ppt") End Sub '■パワポを閉じる Private Sub Command2_Click() PPTApp.Quit Set PPTApp = Nothing End Sub '■閉じるイベントを取得 Private Sub PPTApp_PresentationClose(ByVal Pres As PowerPoint.Presentation) MsgBox "閉じる" End Sub ----------------------------------------------------

  • Excel vbs AppActivate エラー

    Sub TeraPad_SF() 'Keyboard Shortcut: Ctrl+Shift+Q Dim RetVal As Integer Dim sA As String Dim sP As String Dim sV As String Dim sTxt As String sV = ActiveCell.Value sTxt = Left(sV, 1) & ".txt" '開くファイル名 sA = "D:\WebCamRegistor\txtFolder\" & sTxt '実行するプログラムのパス sP = "C:\Program Files\TeraPad\TeraPad.exe " RetVal = Shell(sP & sA, 1) If RetVal = 0 Then MsgBox "起動に失敗しました" AppActivate RetVal SendKeys "%SF" & sV, True End Sub '現在セルの値でAdobeReaderでxx.pdfを検索する Sub AdobeReader_SF() 'Keyboard Shortcut: Ctrl+Shift+Q Dim RetVal Dim sA As String Dim sP As String Dim sV As String Dim sTxt As String sV = ActiveCell.Value sTxt = Left(sV, 1) & ".pdf" '開くファイル名 sA = "D:\WebCamRegistor\pdfFolder\" & sTxt '実行するプログラムのパス sP = "C:\Program Files\Adobe\Reader 10.0\Reader\AcroRd32.exe " RetVal = Shell(sP & sA, 1) If RetVal = 0 Then MsgBox "起動に失敗しました" Application.Wait Now + TimeSerial(0, 0, 2) AppActivate RetVal SendKeys "^F", True End Sub Excel VBA で上は正常に動作しますが、下はAppActivate RetValでエラーとなります。修正の方法をお教えください。

  • VB6.0 PowerPointの開閉

    VB6.0からPowerPointファイルの開閉を行っています。 問題なく動作するのですが、一点問題があります。 OPENの前に、別のPowerPointファイルが開いていた場合に、 QUITを実行すると、元々開いていたファイルも一緒に終了してしまうことです。 別のプロセスでPowerPointのアプリケーションを実行すれば、 解決できるのではないかと考えているのですが、 具体的にどのようにすればよいか分からず困っております。 大変恐縮ですが、アドバイスを頂ければ助かります。 環境:VB6.0(SP5) PowerPoint2002 ------------------------------------------------------------- Option Explicit Private WithEvents PPTApp As PowerPoint.Application '■パワポを開く Private Sub Command1_Click() Set PPTApp = New PowerPoint.Application PPTApp.Visible = True PPTApp.Presentations.Open (App.Path & "\test.ppt") End Sub '■パワポを閉じる Private Sub Command2_Click() PPTApp.Quit Set PPTApp = Nothing End Sub

専門家に質問してみよう