Tutorial Come creare una guida HTML per Excel

Stato
Chiusa ad ulteriori risposte.

giulianovac

Access/VBA Expert
Expert
9 Giugno 2018
2.233
83
Italy
2013 2019
166
Chi non conosce le guide che di norma sono incluse nei software?
Ad esempio, basta aprire Excel e premere F1 per farla apparire.

Anche se questo è un argomento abbastanza avanzato, vedremo quanto può essere semplice creare una guida per i propri UserForm.
Parlo di una vera guida HTML compilato, ovvero con estensione .CHM.
Per chi non lo sapesse, la guida CHM è molto flessibile perché permette di richiamare un argomento specifico, sensibile al contesto, e saremo noi a decidere di volta in volta l'argomento da visualizzare.

Occorrente
  1. Un programma di 'help authoring' per creare la guida
    Ve ne sono tantissimi disponibili, tra questi ho scelto HelpNDoc perché completamente gratuito per uso personale.
    Nello zip ho incluso il sorgente della guida da me creata (HTMLHelp_VBA.hnd)

  2. Serve anche installare l'utility di Microsoft per la compilazione dei file HTML, che può essere scaricata qui:
    Microsoft HTML Help Workshop

  3. il vero 'cuore' di tutto è il modulo BAS modHTMLHelp (lo trovate incluso nel file Excel a corredo) che fornisce tutte le funzionalità necessarie per richiamare le pagine della guida e che va inserito in ogni file Excel.
Tutto qui? Sì tutto qui.

Passo 1 - Creazione della guida
Avviate HelpNDoc, aprite il file HTMLHelp_VBA.hnd e capirete la semplicità di come procedere.
Qui non voglio tediarvi, non devo istruirvi su HelpNDoc (dispone già di un tutorial) ma in 10 minuti avrete capito tutto.
Se poi fate un New Project vi propone un progetto-tipo già strutturato. Cosa si vuole di più?

Una volta che avete creato la guida, compilate in formato CHM e vi trovate il file compilato nella cartella di output del programma.
Chiaramente, il file andrà copiato nella stessa cartella del vostro file Excel.


Passo 2 - Collegare la guida all'UserForm
Niente di più semplice!
Prima di tutto è necessario informare l'userform quale sarà il file di guida da usare, e questo lo si fa nell'evento Initialize valorizzando la variabile pubblica gsHelpFile, così:
Visual Basic:
Private Sub UserForm_Initialize()
    gsHelpFile = ThisWorkbook.Path & "\" & "HTMLHelp_VBA.chm"
    If Dir$(gsHelpFile) = vbNullString Then
        MsgBox "File della guida non trovato", vbInformation
    End If
End Sub
Nel modulo modHTMLHelp ho anche predisposto una routine ApriGuida che richiede il nome del file HTM da aprire:
Visual Basic:
Public Sub ApriGuida(Optional ByVal sFileHTM As String = "sommario.htm")
    modHTMLHelp.OpenTopic2 0, gsHelpFile, sFileHTM
End Sub
La parte finale: inserire il codice che apre la guida e visualizza l'argomento desiderato.
Nel form vi sono tre pulsanti, ognuno apre il relativo argomento della guida.
Visual Basic:
Private Sub cmdArgomento1_Click()
    ApriGuida "argomento1.htm"
End Sub
Notare che l'estensione del file può variare (in base al programma di help authoring) ma in ogni caso o è htm oppure è html.

Un aspetto interessante è che il file della guida non è legato a livello binario al file Excel, quindi in caso di aggiornamenti di quest'ultimo basta semplicemente pubblicare anche la guida (ovviamente sempre che l'abbiate aggiornata). Non è richiesta alcuna ulteriore operazione supplementare.


Conclusione
Senza il modulo modHTMLHelp sarebbe stato arduo implementare le funzionalità indicate.
Per la maggior parte di voi quando descritto sopra sarà più che sufficiente, ma per chi vuole ottenere di più consiglio di studiarselo bene perché le potenzialità sono molte.

Ora potrete creare le vostre guide e fare un figurone con i vostri utenti e clienti.
Cosa che potrò solo far aumentare la fiducia e credibilità nelle vostre capacità!

Buon divertimento
:batticinque:
 

Allegati

Ultima modifica:
Stato
Chiusa ad ulteriori risposte.

Sostieni ForumExcel

Aiutaci a sostenere le spese e a mantenere online la community attraverso una libera donazione!