(C) 2009 - 2021 by Mourad Louha · Alle Rechte vorbehalten

Kompilierte Hilfedateien für das Zusatztool zum Excel WM Planer

Unser WM Planer wird langsam erwachsen und enthält mittlerweile zahlreiche Optionen und Features. Um unsere User bei der Bedienung des Planers und des späteren Zusatztool zu unterstützen, haben wir uns überlegt, dem Zusatztool eine kompilierte Hilfedatei im CHM-Format beizufügen. Aufgerufen wird die Hilfedatei über ein entsprechendes Symbol von der Hauptseite im Zusatztool.

Excel Soccer World Cup Planner

Die Hilfedatei präsentiert sich dann wie folgend im Screenshot zu sehen. Wie sie sehen, das Layout unserer Website wird auch in der Hilfedatei integriert sein.

Excel Soccer World Cup Planner

Klar, für moderne Anwendungen sollten eher Hilfedateien neueren Formats verwendet werden, wie sie beispielsweise von Visual Studio verwendet werden. Für den Planer sollte aber das ältere CHM-Format jedoch völlig ausreichend sein, zumal dieses Format auch von den neueren Windows Versionen unterstützt wird. Ausserdem lassen sich diese Dateien relativ einfach generieren und es gibt hierfür neben kommerziellen Anwendungen auch kostenlose Tools.

Ursprünglich hatten wir vorgehabt, für jede Sprache eine eigene Hilfedatei sowie eine dynamische CHM-Datei zu generieren, welche beim Aufruf eine passende Datei lädt. Leider lassen sich Unterpunkte in einer zur Laufzeit geladenen Hilfedatei nicht zuverlässig per Excel VBA ansprechen. Somit haben wir uns entschieden, alle verfügbaren Sprachen in einer Hilfedatei zu integrieren.

Um in Excel VBA die Hilfedateiladen zu können, bedarf es einiger API Importe aus dem für die Anzeige und Verwaltung zuständigen ActiveX Steuerelement „hhctrl.ocx“. Dieses muss dann natürlich auf dem System vorhanden sein und korrekt registriert worden sein. Es kann vorkommen, dass dies auf einigen System der Fall ist; Microsoft stellt jedoch hierfür Hotfixes bzw. Updates zur Verfügung.

Folgend der Code zur Schaltfläche im Dialog zum Excel WM Planer Zusatztool. Im Codemodul zur UserForm wird beim Anklicken der Schaltfläche die Funktion „mlfhHelp()“ aufgerufen, die sich in einem eigenen Modul befindet.

In der Funktion wird geprüft, ob die Datei an der dafür vorgesehen Stelle vorhanden ist, eine in einer Combobox versteckte ID ermittelt und an die Funktion „mlfpApiHelpLoad()“ übergeben.

Der Funktion wir der Dateiname inklusive Pfad, eine auszuführende Aktion sowie ein Datenblock übergeben. Je nach Aktion werden Elemente in der Hilfedatei, wie beispielsweise eine bestimmte Seite, eine Indexseite oder die Seite zum Suchen nach Inhalten angesprochen. Entsprechend kommen dann die API Importe „apiHelpTopic ()“, „apiHelpHelp()“ und „apiHelpSearch()“ zum Einsatz. Diese sind im Codemodul im Kopfbereich entsprechend definiert bzw. deklariert.

Ganz wichtig ist, dass bevor Excel geschlossen wird, die per Code geöffnete Hilfdatei auch zuvor geschlossen wird. Im schlimmsten Fall stürzt Ihnen ansonsten Windows (XP) mit einem Bluescreen oder Excel ab. Die Funktion „mlfpApiHelpClose()“ prüft ob das Hilfefenster noch vorhanden ist und, wenn ja, sendet eine Nachricht an dieses, um es zu schließen. Die Funktion wird dann aufgerufen, wenn das Zusatztool als solches geschlossen wird, also im Ereignis „Workbook_BeforeClose()“ oder wenn das Dialogfenster zum Tool geschlossen wird.

Abschließend einige Links zu thematisch verwandten Seiten und Tools, die die Erstellung von CHM-Dateien vereinfachen und unterstützen.

 
Comments

No comments yet.