Výsledky 1 až 2 z 2

Téma: [VBA] zobrazení vlastní chm nápovědy

  1. #1
    Junior Member
    Založen
    26.12.2003
    Bydliště
    Kosmonosy&Liberec
    Příspěvky
    96
    Vliv
    262

    Standardní [VBA] zobrazení vlastní chm nápovědy

    Zdravím a prosím o pomoc,
    mám následující zdánlivě jednoduchý problém. Mám soubor nápovědy Napoveda.chm, mám na listě tlačítko. Na stisk tlačítka chci zobrazit zmíněnou nápovědu. Dělal jsem to takto

    Private Sub CommandButton1_Click()
    Application.Help "c:\Temp\Napoveda.chm", 1001
    End Sub
    Těch 1001 je číslo topicu, tak jak jsem si ho vytvořil při návrhu nápovědy

    Problém je v tom, že se nápověda sice otevře, ale otevře se v okně nápovědy Excelu, tzn. v okně s captionem "Nápověda pro Microsoft Excel" (chci tím říct, že to prostředí je jiné, než když bych tu svou nápovědu otevřel standartně dvojklikem/enterem přímo ve Woknech) což by ještě tak ani nevadilo, ale hlavní problém je v tom, že jsou tam jiné záložky než jsem si definoval ve své nápovědě (měl jsem tam obsah, index a vyhledávání): zde je "Answer wizard" a "index", které se vztahují nikoli k mé nápovědě, ale k nápovědě Excelu (prostě to nevyhledává v mé nápovědě, ale v té Excelovské). Jediné co je správně, tak je záložka Obsah, ale to je asi tak vše. A nemluvím o tom, že jsem si některá standartní tlačítka ve své nápovědě zakázal (zobrazit, skrýt, možnosti...) a nechal jsem si tam jen dopředu, dozadu a tisk. No a v tomto zobrazení jsou tlačítka, která používá excel.

    Šel jsem na to tedy jinak. Přes Api.
    Public Const HELP_CONTEXT = &H1 ' Display topic in ulTopic
    Public Const HELP_QUIT = &H2 ' Terminate help
    Public Const HELP_INDEX = &H3 ' Display index
    Public Const HELP_CONTENTS = &H3&
    Public Const HELP_HELPONHELP = &H4 ' Display help on using help
    Public Const HELP_SETINDEX = &H5 ' Set current Index for multi index help
    Public Const HELP_SETCONTENTS = &H5&
    Public Const HELP_CONTEXTPOPUP = &H8&
    Public Const HELP_FORCEFILE = &H9&
    Public Const HELP_KEY = &H101 ' Display topic for keyword in offabData
    Public Const HELP_COMMAND = &H102&
    Public Const HELP_PARTIALKEY = &H105&
    Public Const HELP_MULTIKEY = &H201&
    Public Const HELP_SETWINPOS = &H203&

    Public Declare Function WinHelp Lib "user32" Alias "WinHelpA" _
    (ByVal hWnd As Long, _
    ByVal lpHelpFile As String, _
    ByVal wCommand As Long, _
    ByVal dwData As Long) _
    As Long

    Sub MyNapoveda()
    Dim iTemp As Long
    Dim iContextID As Long
    Dim strHelpFile As String
    strHelpFile = "c:\Temp\Napoveda.chm"
    iContextID = 1010
    iTemp = WinHelp(0, strHelpFile, HELP_CONTEXT, iContextID)
    End Sub

    Private Sub CommandButton1_Click()
    MyNapoveda
    End Sub
    Problém je, že to hlásí: "...buď není soubor nápovědy, nebo je poškozen"

    zde jsem se dočetl, že s podporou chm formátu to v Excelu není tak žhavé. Nechce se mi to předělávat do hlp
    1)Poradí mi někdo jak na stisk tlačítka tu nápovědu zobrazit
    2)Dá se nějak udělat, aby se VŽDY defaultně zobrazovala záložka "Obsah", buď přímo při návrhu nápovědy (používám Help & Manual + HTML workshop), nebo prostřednictvím VBA
    notebook Fujitsu Siemens E8410||undervolted

  2. #2
    Junior Member
    Založen
    26.12.2003
    Bydliště
    Kosmonosy&Liberec
    Příspěvky
    96
    Vliv
    262

    Standardní

    Trochu víc jsem hledal a tak si sám odpovím:

    'Command to pass HTMLHelp()
    Public Const HH_DISPLAY_TOPIC = &H0 ' Display the help file.
    Public Const HH_DISPLAY_TOC = &H1 ' Display the table of contents.
    Public Const HH_DISPLAY_INDEX = &H2 ' Display the index.
    Public Const HH_DISPLAY_SEARCH = &H3 ' Display full text search.
    Public Const HH_HELP_CONTEXT = &HF ' Display mapped numeric value in dwData.

    Declare Function HtmlHelp Lib "hhctrl.ocx" Alias "HtmlHelpA" _
    (ByVal hwndCaller As Long, ByVal pszFile As String, _
    ByVal uCommand As Long, ByVal dwData As Long) As Long

    Sub HtmlNapoveda()
    Dim iTemp As Long
    Dim iContextID As Long
    Dim strHelpFile As String
    strHelpFile = "c:\Temp\NewProject.chm"
    iContextID = 1010
    iTemp = HtmlHelp(0, strHelpFile, HH_DISPLAY_TOC, 0)
    End Sub
    HH_DISPLAY_TOC zobrazí table of contents, tedy obsah
    HH_DISPLAY_TOPIC by zobrazovalo vybraný topic

    Omlouvám se, měl jsem jsem hledat víc, než jsem to sem hodil
    Kdo by se chtěl dozvědět ještě něco víc: http://www.helpscribble.com/vba.html
    notebook Fujitsu Siemens E8410||undervolted

Informace o tématu

Users Browsing this Thread

Toto téma si právě prohlíží 1 uživatelů. (0 registrovaných a 1 anonymních)

Pravidla přispívání

  • Nemůžete zakládat nová témata
  • Nemůžete zasílat odpovědi
  • Nemůžete přikládat přílohy
  • Nemůžete upravovat své příspěvky
  •