Usare il Collegamento Ipertestuale (Insieme HyperLinks) per aprire Files sul computer. - dal 04/09/04 pagina vista: volte

Ovvero: come crearsi un un elenco di files memorizzato su un foglio di lavoro, elenco costituito da HyperLink che ci consentirà di APRIRE (accedere) direttamente al file voluto, SENZA necessità di impostare istruzioni specifiche per l'apertura del programma (Applicativo) preposto a "leggere" il file medesimo.

Nei due siti ennius trovate diversi esempi su come crearsi in un foglio di Excel, degli elenchi di files presenti sul o sugli Hard-disk del nostro computer. Gli scopi di questi esempi sono finalizzati alla catalogazione dei files che ci interessano in modo da creare degli archivi da salvare, ma sono esempi nei quali NON è possibile accedere direttamente ai file che formano l'elenco.

Un HiperLink comunque non è altro che un collegamento ad un "indirizzo" che può essere richiamato con la semplice pressione sul nome che rappresenta il collegamento stesso, un pò come avviene per i Links sul Web. Per "indirizzo" si può intendere un vero indirizzo Web, ma anche il "Percorso Completo" di un file sul nostro hard-disk. Ricordo che per Percorso si intende l'indicazione dell'unità (hard-disk, lettore floppy, oppure lettori CDrom-Masterizzatori, o periferiche rimovibili), seguito dal nome della Cartella ed eventuali Sottocartelle che portano al file collegato, più il nome e l'estensione del file stesso. Esempio: C:\Documenti\Immagini\Butanta.jpg è un "percorso completo" che mira al file Butanta.jpg che sarà un'immagine (visto l'estensione .jpg).

E' necessario, credo, a questo punto, ricordare due cose : 

  • cosa è l'estensione di un file - per estensione si intende quella parte terminale del nome di un file formata da un punto e tre lettere, ad esempio .xls oppure .doc, oppure .bmp, ecc. ecc. L'estensione identifica la natura del file  e indica l'Applicativo )Programma) che è servito alla creazione del file, oppure l'Applicativo che può leggere quel tipo di file. Quando noi salviamo un file in Excel e forniamo il nome per riconoscerlo in seguito, il programma stesso provvede di default all'assegnazione dell'estensione, che per Excel è appunto .xls, salvo diversa scelta che il pellegrino può fare. Ogni programma possiede la capacità di assegnare un'estensione che si definisce "proprietaria" in quanto estensione tipica di quel programma, e che servirà a "qualcuno" per poter riconoscere che quel file con quell'estensione è stato fatto con il tal programma (e letto, aperto cioè). Un pò come il padre che assegna il cognome ai propri figli, e chi vorrà sapere a quale famiglia appartiene quel figlio, lo ricaverà dal cognome.

  • cosa è Associazione File - Il Sistema Operativo(tutte le versioni di Windows) possiede una specie di Registro (appunto Associazione File) dove vengono memorizzati tutti i programmi installati sul computer, e per ogni programma (nel cui Setup di installazione sia stata prevista questa registrazione) vengono registrate le loro estensioni proprietarie. E' proprio grazie a questo Registro che quando noi doppioclicchiamo su un nome di un file in Esplora Risorse (che corrisponde al comando "aprifile"), o sul Desktop, o sui menù di consultazione (Programmi, e simili), che possiamo aprire il file stesso. Il tutto avviene perchè Windows legge l'estensione (anche se nascosta) del file, cerca l'associazione al programma, che tiene registrata in Associazione File, e tramite la Shell di Sistema, provvede ad aprire per primo il programma associato, e all'interno del programma apre il file che abbiamo voluto aprire. Un pò più chiaro adesso? Spero di si.

Per creare un collegamento ipertestuale e aggiungerlo all'insieme Hyperlinks, si usa il metodo Add, indicando nell'istruzione in quale cella inserire il collegamento, per esempio:

  • With Worksheets(1)
    .Hyperlinks.Add .Range("A1"), "http://ennius.altervista.org"
    End With

    che inserirà nella cella A1 un collegamento al sito http://ennius.altervista.org, oppure:

  • With Worksheets(1)
    .Hyperlinks.Add .Range("A1"), "C:\Documenti\Immagini\Butanta.jpg"
    End With

    che inserirà nella cella A1 un collegamento al file C:\Documenti\Immagini\Butanta.jpg presente sul nostro hard-disk

Cliccando sul nome del collegamento che verrà posto in A1, ci "collegheremo" (cioè Apriremo la pagina web o il file).

L'Insieme HyperLinks possiede la proprietà HyperLink, che è possibile usare insieme a Follow (segui), per restituire un collegamento. Un intervallo o un foglio di lavoro può avere più di un collegamento ipertestuale. Utilizzare Hyperlinks(index), dove index è il numero di collegamenti ipertestuali, per restituire un singolo oggetto Hyperlink. Questo esempio attiva il collegamento ipertestuale 2 nell'intervallo A1:B2

  • Worksheets(1).Range("A1:B2").Hyperlinks(2).Follow
     

ATTENZIONE: il file di esempio di Eliano, posto in calce alla pagina, si basa sull'oggetto FileSEarch CHE NON E' SUPPORTATO (è nascosto) e quindi le routine non funzionano a partire dalla versione Excel 2007 compreso e successive; eventualmente leggere l'articolo "Cercare e Selezionare una Cartella (Folder o Directory)" raggiungibile al link Cercare e Selezionare una Cartella (Folder o Directory) 

Chi è riuscito a leggere fino a questo punto, ora troverà lo scopo di questo articolo ed un esempio da scaricare. Un tale Falini Eliano  falinieliano@virgilio.it, raccogliendo esempi vari presi da questi siti, ed adattandoli alla bisogna, mi ha fatto partecipe di un suo programma, il "CreaIndice". Il programma "scannerizza" un hard-disk e rintraccia tutti i file presenti, chiedendo poi se intendiamo creare un elenco di collegamento ipertuestuale (HyperLinks) dei file trovati. Lo scopo è di avere una tabella con i file che vorremo consultare rapidamente, cliccando appunto sul nome (Percorso Completo) memorizzato nell'elenco, lasciando alla Shell di Sistema il compito di aprire prima l'Applicativo preposto alla lettura/scrittura del tipo di file scelto. Una bella pensata, semplice come idea, ma che ha trovato il mio entusiasmo ed è nata una collaborazione per integrare il "CreaIndice" di ulteriori opportunità. Ne è venuta fuori una maggiore flessione nella possibilità di scansione (si possono infatti selezionare le varie unità presenti su un computer), e la possibilità di selezionare una singola cartella fra quelle presenti nell'unità scelta, in modo da creare un indice più ridotto di file da scansionare per decidere la loro registrazione come collegamento ipertestuale. Il programma si compone di due fogli, il foglio "Elementi" e il Foglio "Indice_Files". Il foglio "Elementi" , che vediamo sotto, è il foglio che consente di eseguire le selezioni delle unità e/o delle cartelle da scandire. E' composto da:

  • ComboBox1 (AcitveX) per selezionare le unità (lettera A)

  • ComboBox2 (AcitveX) per selezionare le cartelle presenti nell'unità scelta (lettera B)

  • Cella A5 come inizio zona in cui viene creato l'elenco delle cartelle presenti nell'unità selezionata (lettera C). Elenco che viene aggiunto anche nella ComboBox2 (lettera B). Se poi si desidera operare una cernita, selezionando una sola cartella da cui ottenere, a caduta, le sottocartelle presenti (ma fondamentalmente solo i file della cartella selezionata), basterà selezionare nella Combobox2 il nome della cartella voluta.

  • Colonna C - a partire da C2, elenco delle estensioni che servirà poi sul foglio "Indice_Files" per determinare se reperire tutte le estensioni ( * ), o solo quelle desiderate.

La combobox2 come si presenta dopo che si è scelta la lettera dell'unità da scandire, e da cui è possibile effettuare una selezione di una cartella, e la zona "elenco" (da A5) dopo una selezione:

Questi sono passaggi necessari per determinare le preferenze: infatti la routine applicata da Eliano per la creazione dell'elenco dei file di cui creare l'hyperlinks, è bene ricordare, rintraccia tutti i file, ma proprio tutti, anche all'interno di sottocartelle, o di sottosottocartelle, ecc. ecc, per cui se ci si fosse limitati a selezionare solo le cartelle di una unità, e non anche le sottocartelle, scegliendo la cartella "Programmi" ad esempio, ci saremmo trovati con una scansione di diverse migliaia di files, che ci renderebbe un tantino "impazienti" nella ricerca del file voluto.

Ora passiamo ad esaminare come "funziona" il foglio "Indice_Files" che vedoamo sotto:

  • Cella B3 - (lettera A) ospita Convalida che ci consente di scegliere dalla lista collegata al foglio "Elementi", a partire dalla cella A5, l'elenco che ci saremo precedentemente creato, e che servirà, tramite il pulsante "Cerca i Files" (lettera C).

  • Cella D3 - (lettera B) ospita Convalida collegata alla lista estensioni (colonna C) dell'altro foglio. Questa selezione ci consentirà di limitare la ricerca di file ad una precisa estensione, ad esempio potremo selezionare .Doc, ed otterremo solo i file .Doc

E questo sarà ciò che succede quando, dopo aver selezionato una cartella (o sottocartella) premeremo il pulsante "Cerca i Files": veniamo avvisati col numero dei file presenti nella cartella  (o sottocartella) scelta (in quest'esempio Ischia), e con l'estensione scelta (con asterisco * verranno trovati tutti i file nel percorso scelto)

e a seguire verrà la richiesta se vorremo inserire il file in quel momento letto, e potremo scegliere "si", "no" oppure "annulla" ed usciremo dalla ricerca:

Se si sarà optato per il "si", il nome letto nel messaggio verrà inserito come hyperlink a partire dalla riga 8, ed il messaggio continuerà a chiederci se vorremo o no inserire i files che verranno uno alla volta letti e/o inseriti nelle righe successive, fino a che non terminerà il ciclo di ricerca o premeremo "annulla":

Il pulsante "Cancella Dati" serve a pulire tutte le celle interessate in modo da offrire un'elenco vuoto. Il foglio è protetto per evitare cancellazioni indesiderate.

Un grazie ed un bravo ad Eliano, neofita del vba.

File consultabile e scaricabile :   CreaIndice.zip    27 Kb

 

Buon lavoro.

prelevato sul sito www.ennius.altervista.org