Live-Forum - Die aktuellen Beiträge
Datum
Titel
29.03.2024 13:14:12
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1148to1152
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Hilfe-Datei einbinden

Hilfe-Datei einbinden
Herbert
hallo,
wie kann ich in einer benutzdef. function eine eigene hilfedatei (*.chm) einbinden, die dann, bei aufruf der function, mit einem klick auf "hilfe für diese funktion" geöffnet werden kann?
vielen dank im voraus!
servus
AW: Hilfe-Datei einbinden
26.03.2010 13:10:48
Renee
Hi Herbert,
IMHO kannst du nicht nur einer Funktion ein Helpfile (.chm) zuordnen.
Du kannst dem ganzen VBA Projekt eine Hilfsdatei zuordnen und innerhalb der Funktion auf die entsprechene HilfeKontextID in der zentralen Datei verweisen.
Im VBE - Objektkatalog - DeineFunktion - Eigenschaften - Hilfekontext-ID
GreetZ Renée
AW: Hilfe-Datei einbinden
26.03.2010 13:22:29
xr8k2
Hallo Herbert,
schau mal in der Office - Hilfe unter MacroOptions. Als Helpfile kannst du auch eine ganz normale Textdatei anlegen.
Hier ists auch nochmal schön erklärt (sorry für den Link auf ein anderes Forum ;-)):
http://www.office-loesung.de
Gruß,
xr8k2
Anzeige
Das Problem auf Office-Lösung war nur,...
26.03.2010 21:37:42
Luc:-?
…dass dem Frager nur bedingt geholfen wurde, denn das Problem ist viel komplexer, xr8k2…!
Hi, Herbert,
eine .chm muss so konstruiert sein, dass sich ihr internes System an/in das der normalen xlHilfe an-/einpasst, sonst wird das nie was. Es ist auch sehr fraglich, ob das erreichbar ist, denn MS spricht immer von einem eigenen Hilfeprojekt, nie von Einbinden in die xlHilfe. Deshalb habe ich auch darauf verzichtet und lasse bei Bedarf eine MsgBox mit Hilfe-Button laufen. Das fktt, wenn du in der Box den Dateipfad und -Namen angibst. Den FktsAssi kannst du damit aber nicht locken! Eine gut gemachte .chm kann man aber auch separat starten. Bspw erzeuge ich alle dafür nötigen Dateien mit VBA direkt aus dem Projekt-AddIn — also die .htm, .hhc (XML) und .hhp —, brauche dann nur noch die .hhp aufzurufen, auf Spei­chern+Kom­pri­mieren zu klicken und in (inzwischen) ganzen 2sek ist alles fertig. Das Anlegen von Indizes überlasse ich der Automatik. Die Erzeugung der .htm aus dem Projekt dagg dauert ca 2-3min, das Schreiben der Bspp und Hinweise allerdings doch sehr viel länger… ;-)
Die erzeugten .htm kann ich separat aus der MsgBox heraus aufrufen, die .chm nur insgesamt.
Der ganze Spaß endet allerdings mit xl12! MS hat für Xl, Wd u.PPt ein neues Hilfesystem kreiert (das mittlerweile 4. MS-Hilfe­symbol), das sich auch unter VBA nicht dazu herablässt, irgendwelche .htm-Dateien anzuzeigen; der FktsAssi schon gar nicht, aber wenigstens zeigt der unter allen XL-Vss die Beschreibung der Argumente an. M.E. wirst du eine Anleitung, wie man das hinbekommt, in keinem dt Office-Forum finden, in .nl, .fr, .uk und .us schon eher… Das geht dann ungefähr so in der Art wie es auch die alten MS-AddIns zeigen → Namen-Argumente-Tabellen als Basis, auf die dann eine benötigte spezielle Routine zugreifen kann…
Die neuen Fml-Features von Xl12 zeigen allerdings nur den FktsNamen, keine Argumente, wenn ich mich recht erinnere. Aber möglicherweise sind ja die XL-XML-Tage gezählt, zumindest lt c't
Gruß Luc :-?
Anzeige
AW: Das Problem auf Office-Lösung war nur,...
27.03.2010 11:16:02
Herbert
hallo luc,
danke für deine ausführliche beschreibung. aber das erstellen der chm-datei ist nicht das problem, das habe ich ja schon gelöst (doc-to-help). das problem ist auch nicht das aufrufen der chm-datei. das geht mit onkey etc. alles prima. das problem ist das einbinden, bzw. das aufrufen der chm-datei aus der UDF heraus. da habe ich schon experimentiert. aber als bestes ergebnis erhalte ich hier den hinweis "hilfebezug ist üngültig!". da habe ich alle möglichen pfad-varianten getestet, aber ohne erfolg.
vielleicht weiß ja noch jemand, wie das geht.
servus
Wer ruft denn eine Hilfe zu einer udF aus...
27.03.2010 17:43:13
Luc:-?
…der udF selbst auf, Herbert…?!
Ich vermute, du meinst etwas anderes, bspw den Funktionsassistenten, bei dem es ja auch 'nen Hilfe-Button gibt. Dazu hatte ich ja bereits geschrieben, dass du dazu in dt xlForen kaum was finden wirst. Das scheint auch nicht so zu fktn wie bei MsgBoxes und unter der Folgeversion ist das eh hoffnungslos. Mit vielen Worten wollte ich dir also nur zart andeuten, dass du wohl keinen Erfolg haben wirst, wenn du dich auf so etwas versteifst. Doc-to-Help wird da nicht ausreichen, auch, wenn so eine .chm-Datei produziert wird, denn die wird kaum zur speziellen xlHilfe-Struktur konform sein. Ist ja auch fraglich, ob MS so etwas vorgesehen hat — wohl eher nicht!
Das Einzige, was mE möglich wäre, hatte ich bereits zuvor genannt. Wenn's dich interessiert, besuche Frankreich mit der Maus…! ;-)
Gruß Luc :-?
PS: Da die Hoffnung ja bekanntlich zuletzt stirbt, lasse ich das mal trotzdem offen… ;->
Anzeige
AW: Wer ruft denn eine Hilfe zu einer udF aus...
28.03.2010 11:36:12
Herbert
hallo luc,
deine vermutung ist zutreffend, ich meine die schaltfläche "hilfe für diese funktion" im funktionsassistenten links unten.
mal sehen, ob vielleicht doch noch jemand eine möglichkeit kennt.
servus
Was ist den daran so schwer ?
30.03.2010 11:22:29
Renee
Hi Herbert,
Warum gehst du auf meine Antwort nicht ein ?
Hier in diesem Beispiel hast du alle nötigen Angaben / Dateien. Das Einzige was du machen musst:
Nach dem Entpacken in ein Test-Verzeichnis in der Excel-Datei FunctionHelp in den VBA-Eigenschaften die Hilfedatei (TestHelp.chm) nochmals anwählen, damit das richtige Verzeichnis eingesetzt wird.
Was dir vermutlich bei deinem Ansatz fehlt sind die Alias.h und Map.h Dateien, die du aber auch mit einem einfachen Notepad erstellen kannst. Allerdings weiss ich nicht, wie du diese in Doc2Help einbindest. In HtmlHelp-Workshop (Links ebenfalls im Ordner!) ist das relativ einfach!
GreetZ Renée
Anzeige
Alles! Denn, wenn das so einfach wäre,...
30.03.2010 16:28:13
Luc:-?
…Renée,
hätte ich das auch gemacht… ;-)
Unter xl9 wird eine .hlp-Datei vom Objektmanager verlangt (.chm wird nicht akzeptiert!) und MS schreibt in der Hilfe quasi, dass die Angabe der Hilfedatei nur für den Objektmanager gilt. Außerdem kann man das auch nicht manuell einstellen. Selbst die IDNr wird nicht dauerhaft akzeptiert. Beim FktsAssi kann ich das nicht richtig prüfen, der Button fkt bei mir auch bei StddFktt nicht (mehr). Viell wird hier ja auch noch 'ne alte .hlp-Datei verlangt. Die wurden ja bekanntlich auch in das neuere .chm-Hilfeprojekt integriert.
Unter xl12 fkt, wie ich schon geschrieben hatte, gar nichts mehr. Wenn überhpt, dürfte dein Bsp nur unter xl10+11 so laufen wie gedacht. Viell liegt's ja auch an VB6.0. Bei Gelegenheit muss ich mal VB8.0 probieren, aber evtl läuft das ja bei mir unter xl12. Habe ich nicht geprüft.
Ansonsten wirst du recht haben — Herbert's Doc2Help wird ohnehin nicht kompatibel sein.
Mein frz Tool ermöglicht wenigstens Argumentbeschreibungen; Hilfe-IDs sind zwar auch vorgesehen, aber das klappt bei mir nicht. Das Einzige, was aus dem AddIn heraus sonst noch fkt, ist das mit der MsgBox. Aber wie gesagt nicht mehr unter xl12! Die .chm muss ohnehin separat aufgerufen wdn. Viell gibt's da ja dann Probleme ab Vista/Win7…?!
Gruß Luc :-?
Anzeige
Läuft unter 2000 - 2007 und 2000 - Vista
30.03.2010 16:55:10
Renee
Hi Luc,
Der Anfrager hat nix von xl9 oder .hlp Dateien gesagt!
Mein Beispiel läuft problemlos unter XL2000, 2003, 2007 ;-)
Unter Win 2000, XP und Vista ;-)
Für die Parameter-Hilfe im FktAssi gibt einen brauchbaren (nicht MS-offiziellen) Tipp im Netz, aber das brauch ich so gut wie nie.
GreetZ Renée
AW: Läuft unter 2000 - 2007 und 2000 - Vista
30.03.2010 18:17:39
Herbert
sorry, aber ich habe vergessen zu sagen, dass ich mit win 7 64 bit und excel 2003 arbeite. kann es an win 7 liegen? das kann ich mir irgendwie nicht vorstellen.
servus
@Luc:Es ist tatsächlich so einfach, ...
30.03.2010 21:27:23
Renee
wenn du weisst wie, Luc/ius
Das Beispiel ist mit XL2000 (xl9) und einer .chm erstellt!!
Die .chm Datei ist nicht im Objektmanager zugeordnet, sondern in den Eigenschaften des VBA-Projekts!. Die KontextIDs für die Funktionen hingegen, werden im Objektmanager und den Eigenschaften der jeweiligen Funktion gesetzt! Das funktioniert aber wegen eines uralten VBE-Bugs nur dann, wenn in dem Modul auch eine SUB (siehe mein Beispiel: Sub Nix) existiert!
Luc, die Welt ist manchmal einfacher als du glaubst ;-)
...und sie ist heute trotz der erfolgreichen Kollisionen der Protonenstrahlen bei je 3.5TeV am LHC nicht untergegangen. Für mich geht aber die nord-westliche in rund 72h wieder zugunsten der südlichen unter ;-))
GreetZ Renée
Anzeige
Ich benutze HTML Help Workshop 4.74 für...
31.03.2010 03:47:10
Luc:-?
…mein Hilfeprojekt, Renée,
und bin mit dem Ergebnis auch soweit zufrieden, zumal ich bis auf die automatisch erstellten Indizes sämtl lt Workshop-Hilfe erforderlichen Dateien automatisch erstelle. Von einer Map.h und der anderen .h ist da aber nicht die Rede. Allerdings verwende ich Listen mit Fkts- und ArgNamen für das o.g. Tool. Das sieht dann den alten Analyse.xlas ähnlich. Bloß mit den IDs klappt's nicht, obwohl die in jeder HTML-Datei stehen (xlHilfe-analog). Probleme gab's nur mit der automatischen Prozedurbeschreibung; musste ich 2x im Pgm aufführen. Naja, ist mir dann zu arbeitsintensiv geworden, Unmengen „elektronischen Papiers“, noch dazu in Englisch, zu wälzen.
Dein Bsp ist ja recht neckisch, fkt aber wie gesagt bei mir weder unter xl9 noch xl12 aus dem FktsAssi oder dem Objektmanager heraus — genausowenig wie meine Hilfe.chm oder ihre Einzel.htm. Da stehen dann immer ?.hlp und auch deine .chm wird nicht akzeptiert („Datei ist keine HlpDatei oder…“). Einbindung ins Projekt hatte ich beim Objektmanager vermutet, weil der die Procs auflistet und du zuerst was von deineFkt geschrieben hattest. Eine Sub Nix ist bei mir wohl nicht nötig, weil zu jeder FctProc auch eine SubProc zur Hilfe.HTML-Generierung gehört.
Aber vielleicht liegt's ja an dem, was du sonst noch schreibst. Meine Einzel.HTMs wdn wohl auch direkt dem AddIn zugeordnet, nur nicht die .chm. Aber das nutzt unter xl12 nichts. Bis du im nächsten Winter wiederkehrst werde ich das wohl rausfinden… Aber immerhin muss es ja einen Grund für die ellenlangen Threads in NL-xlForen geben, wenn das Thema da auch etwas weiter gefasst war… ;-)
Immerhin habe ich jetzt die Bestätigung, dass die .chms nicht nur unter Vista, sondern auch unter Win7 laufen.
Naja, dann guten Rückflug in deine feucht-heiße Tropen-Heimat, in der es jetzt wohl wieder etwas trockener wdn dürfte, FrOstern in der Heimat und alles Gute. Bei euch (in Kavango) sind wohl 2010 Wahlen und die östl Nachbarprovinz ist unruhig und verHIVt. Naja, hier ist's wohl ruhiger, aber nicht einfach. Bis jetzt sieht die Welt (als Teil des Uni- bzw Multiversums) immer noch wesentlich komplizierter aus als sie es möglicherweise (in philosophischem Sinne) ist. Und Intelligenz nebst Zivilisation macht's nicht gerade unkomplizierter.
Gruß Luc :-?
Anzeige
Ich benutze die gleiche Version von...
31.03.2010 11:18:44
Renee
HTML Workshop, Luc
Genau die beiden Dateien Map.h und Alias.h sind aber matchentscheidend für das Funktionieren des Help aus dem Funktionsassisten von Excel.
zu Map.h:
- definiert die Verbindung(Alias/Indexname) zur Help-ContextID (später im VBE-Objektmanager zur Funktion zu assozieren!)
- wird im HWShop eingebunden über Button HTMLHelp API information Tab Map Btn Header file
Inhalt Map.h:
#define myFunc1Help 1
#define myFunc2Help 2

zu Alias.h:
- definiert die Verbindung zwischen Alias/Indexname zur HTML-Datei (Textinhalt)
- wird im HWShop eingebunden über Button HTMLHelp API information Tab Alias Btn Include
Inhalt Alias.h:
myFunc1Help=myFunc1.htm
myFunc2Help=myFunc2.htm

Fazit: Vor/Nach der Compilation sieht die .hhp Datei so aus:
[OPTIONS]
Compatibility=1.1 or later
Compiled file=TestHelp.chm
Default topic=myFunc1.htm
Display compile progress=No
Language=0x807 Deutsch (Schweiz)
[FILES]
myFunc1.htm
myFunc2.htm
[ALIAS]
#include Alias.h
[MAP]
#include Map.h
[INFOTYPES]

Nach der Kompilation in eine .chm Hilfedatei ist nur noch diese nötig um im VBE die richtigen Eigenschaften zu setzen. Ich bin felsenfest davon überzeugt, dass mein Beispiel auch bei dir läuft!
- Extrahiere nur die Dateien .xls und .chm.
- Öffne im .xls den VBE, dort die Projekt-Eigenschaften und selektier als Hilfedatei die .chm
- Wenn du jetzt in die Tabelle zurückkehrst und auf Zelle A1 den FktAssi öffnest, wird beim Klick auf den Hilfe-Link der Text der ursprünglichen myFunc1.htm Datei angezeigt!
See you next winter... Renée
Anzeige
Falls du doch noch 'nen Augenblick Zeit...
01.04.2010 04:25:52
Luc:-?
…haben solltest (dein Flug geht ja wohl erst morgen), Renée,
kann ich dir inzwischen bestätigen, dass dein Bsp im FmlAssi auch unter xl12 fktniert. Der scheint etwas toleranter zu sein als die VBA-Elemente MsgBox und Objektmanager, die unter xl12 partout nur auf das neue MS-Hilfe-Projekt zugreifen wollen. Unter xl9 fkt dein Bsp (und inzwischen sogar manchmal meins) auch im Objektmanager, aber nicht im FktsAssi, aber das wundert mich nicht weiter, denn die Hilfe fkt wohl seit der letzten MSO-Neuinstallation auch für StddFktt nicht mehr. Mein xl9 hat 'nen irreparablen Knacks und das zugehörige Word auch.
Leider werde ich wohl in den sauren Apfel beißen müssen und keine separaten Header-Dateien für die HelpAPI verwenden, sondern die Zuordnungen gleich in die entsprechenden Kapitel schreiben müssen. Außerdem muss ich mir noch was Besseres für das Setzen der Application.MacroOptions einfallen lassen, denn die wdn mitunter einfach nicht gesetzt (trotz Doppel). Irgendwo ist da noch der Wurm drin. Und irgendwie will auch die Zusammenarbeit von AddIn und nachträglich kompilierter resp komprimierter .chm nicht so recht klappen. Es tauchen dann immer noch ? im Objektmanager auf, obwohl Datei nebst Pfad richtig in den Projekteigenschaften steht. So etwas Spezifisches, wie das nochmals nachträglich anzustoßen, würde ich nur ungern dem User überlassen.
Kostet leider alles Zeit, die mir dann anderweitig fehlt. Immerhin enthält mein AddIn über 70 kommentierte Prozeduren (und noch mehr unkommentierte) und etliche Texte muss ich noch schreiben und Anwendungsbspp testen und auswählen…
Naja, wenn du im Winter 2010/11 wiederkommst, erzähle ich dir, was draus geworden ist… ;-)
Toi! Toi! Toi!
Gruß + gute Heimreise, Luc :-?
PS: Fürchte nur, Herbert wird das alles wenig nützen — mir hat's aber 'nen Weg eröffnet, diese Fktionalität doch noch einzubauen…
Anzeige
AW: Falls du doch noch 'nen Augenblick Zeit...
01.04.2010 12:51:51
Herbert
hallo ihr 2,
doch, doch, das hat mir alles sehr genützt! nämlich in der weise, dass ich davon die finger lasse, da es einen nicht zu rechtfertigenden aufwand bedeutet, den man auch anders lösen kann. ich danke euch noch einmal dafür!
frohe ostern und vg
herbert
Ja, Herbert, irgendwie hast du ja recht,...
01.04.2010 14:33:32
Luc:-?
…aber wenn alles möglichst toll und „xl-haft“ aussehen soll, führt leider kein Weg dran vorbei. Und was der Help-Workshop alles bereit hält, ist immens; habe ich nur in Bruchteilen genutzt und mich doch eher auf HTML, VBS und JS verlassen. Leider ab xl12 schon wieder (fast) für die Katz'; aber so sind sie halt bei MS…
Auf jeden Fall hat Renée recht und du brauchst dazu 'ne .hhp nebst den beiden .h; Doc2Help allein wird nicht reichen. Ich bin damals vom Quelltext der Standard-Hilfemodule ausgegangen und habe mir das mühselig zusammengestückelt und dann per VBA erzeugt. Anderes kam dazu und zum Schluss dann noch der Help Workshop oben drauf. Idee war ursprgl, dass sich jeder Nutzer seine Hilfe selber basteln kann, aber mit den zusätzl Aktionen für 'ne .chm ist das dann wohl doch etwas zuviel verlangt. So bleibt das jetzt nur 'ne Option für Kundige.
Auf jeden Fall ist das bei entsprechender Größenordnung ein ziemlicher zusätzlicher Zeitaufwand, denn man muss sich in diverse neue Gebiete einarbeiten. Mit 'ner einfachen Read.Me oder HTML-Dokumentation geht's ja auch. Die kannst du ggf auch über den Hilfe-Button einer MsgBox aus einer Subroutine (kannst du ja mit Shortcut-Key wie bspw ^H[ilfe] oder ^I[nfo] aufrufen!) deines AddIns starten (nicht unter xl12!). So habe ich mal damit angefangen, denn bis xl9 und wahrscheinl auch xl10/11 kannst du so x-beliebige Textdateien starten.
Gruß und dito FrOstern, Luc :-?
AW: Was ist den daran so schwer ?
30.03.2010 18:15:00
Herbert
hallo renée,
sorry, dass ich auf deine antwort nicht eingegangen bin. mittlerweile habe ich es nach deinem vorschlag probiert, ohne erfolg! deine beispieldateien habe ich getestet und da funzt es wunderbar. nur mit meiner datei nicht. gut, ich verwende meine funktion als addin, doch habe ich meine funktion sogar extra in eine xls umgewandelt, ohne erfolg. ich bekomme immer die fehlermeldung "hilfebezug ungültig". das heißt doch eigentlich, dass excel die datei versucht aufzurufen, er sie aber nicht findet. deshalb habe ich ja mit allen möglichen pfadangeben experimentiert, ohne erfolg. nun weiß ich wirklich nicht mehr weiter und bin echt gefrustet! irgendetwas mache ich falsch und weiß aber nicht was!
servus
Es funktionier also auch unter Win7 ;-)
30.03.2010 19:12:22
Renee
Mazwara Herbert,
Wenn meine Beispieldatei läuft, dann bringst du auch deins zum Laufen!
Ob das ein xls oder ein xla spielt IMHO keinen Tango.
Ich weiss nicht, ob du, und wie du die KontextID deinen Funktionen zugeordnet hast.
Wichtig ist: Es gab (gibt) einen Bug im VBE, der es verhindert, dass die KontextID bei der entsprechenden Funktion richtig gesetzt wird. Der Workaround heisst: Im Modul (mit den Funktionen) muss es mindestens eine SUB haben!. Du siehst in meinem Beispielcode, dass eine leere Sub Nix existiert. Wenn diese Voraussetzung geschaffen ist, können bei den einzelnen Funktionen die Help-KontextID gesetzt werden!
Du brauchst für jede Funktions-Help ein eigenständiges Help.html, dass du dann ins .chm File kopilierst.
Wichtig sind aber wie gesagt die Verweise in den Map.h und Alias.h Dateien, die auf die Help.html verweisen und ebenfalls ins .chm File kompiliert werden müssen!
GreetZ Renée
P.S. Was Luc mit seinen xl9 und .hlp Files meint, ist mir schleierhaft. xl9 ist ja XL2000 und ich habe das ganze Beispiel und W2K/XL2000 in 15 Minuten mit dem HtML Helpworkshop von MS zusammengestellt und gepostet. Anschliessend unter den höheren Win/XL Versionen ohne glitches getestet. Damit habt ihr endlich auch eine deutsche Seite die eigene-Hilfe in XL erklärt. Die nächste wird dann in ThiMbukushu sein ;-))

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige