Aprire Applicativi (programmi) da Excel
Quando vogliamo aprire da Excel, un file realizzato con un altro programma, (per esempio un file di Word, un database di Access, una presentazione di PowerPoint, ecc.) dobbiamo per prima cosa aprire l'Applicativo che ha generato il file, e nell'Applicativo aperto, far aprire poi il file. L'istruzione da compilare (una macro) dovrà necessariamente prevedere l'indirizzo completo (PathName) dove risiedono sia l'eseguibile (.exe) dell'Applicativo, sia in file da aprire. Per richiamare un file faremo ricorso alla Shell di sistema inserendo i percorsi suddetti. Per fare un esempio, ipotizziamo di aprire il file Pippo.doc che si troverà nella cartella Documenti, l'istruzione quindi sarà (gli manca "qualcosa", ma è solo per vedere come costruire la stringa): Shell ("C:\Programmi\Microsoft Office\Office\WINWORD.EXE C:\Documenti\Pippo.doc", 1) Come vedete, abbiamo inserito il percorso, prima dell'eseguibile, poi, preceduto da uno spazio, l'indirizzo dove risiede il file, poi una virgola, indi il numero 1 che serve a far aprire il file in primo piano. Ricordo che per indicare un "percorso" si deve primo, indicare l'unità (cioè Hard-disk. Floppy, o CD-Rom) seguito dalla cartella ed ev. dalle sottocartelle dove risiede il file da aprire. (l'unità si indica sempre con Una Lettera, (C o D ecc.) seguita da due punti ( : ) e la barra rovesciata ( \ ). Associando ad un pulsante, la macro, con un click otterremo l'apertura di Word che aprirà il file Pippo.doc, e la finestra di Word apparirà sopra quella di Excel che non viene chiuso. (L'istruzione sopra descritta, così comè, non funziona; per renderla funzionale bisogna togliere la virgola e in numero 1, così modificata, aprirebbe Word ma non ci metterebbe il focus, cioè Word sarebbe aperto, ma SOTTO la finestra di Excel). Per avere Word in vista, l'istruzione và modificata con l'aggiunta di una variabile, così: Dim myval myval = Shell ("C:\Programmi\Microsoft Office\Office\WINWORD.EXE C:\Documenti\Pippo.doc", 1) Questa istruzione funziona, ma presenta due inconvenienti : il primo è che l'istruzione può diventare "chilometrica", il secondo è che non tutti si rinvengono nel trovare il percorso dell'eseguibile. Per fortuna esiste un alternativa, l'utilizzo del metodo "Start" abbinato alla Shell, che ci consente di risparmiare spazio, ma soprattutto lascia alla Shell il compito di trovare il giusto percorso dell'eseguibile. La cosa funziona solo con tutti gli eseguibili di quei programmi che, in fase di installazione, si "registrano" nel Registro di Windows. Vediamo quindi questa istruzione, la prima per aprire solo il programma (Word per esempio), la seconda per aprire Word e il file che ci interessa: Shell ("Start Winword.exe") oppure Shell ("Start Winword.exe C:\Documenti\Pippo.doc") Una precisazione l'utilizzo del metodo Start, funziona con tutte le versioni di Windows98, 98SE, ME, ma non funziona con Windows XP (non ho ancora capito perchè, anzi se qualcuno riesce a fornirmi il motivo, avrà la mia gratitudine, e sarà citato come "salvatore della patria"). Con XP è necessario usare un altro tipo di istruzione (per aprire un' altra Applicazione Microsoft da Excel), che però consente di aprire solo l'eseguibile, ed è questa: Application.ActivateMicrosoftApp xlMicrosoftWord Gli Applicativi richiamabili, sono: xlMicrosoftWord Shell ("Winword.exe"), 1 oppure se si deve aprire un file predefinito, far seguire al nome dell'applicativo il percorso del file da aprire con l'applicativo stesso: Shell ("Winword.exe C:\Documenti\Pippo.doc"), 1 Un sentito grazie a Giuliano. Le varianti sotto riportate potranno essere quindi modificate con l'utilizzo della soluzione appena esposta: Queste sono 2 varianti per aprire Word ed il file, è necessario il path completo anche di WordXP che su WindowsXP è diverso dalle altre versioni: Variante Giuliano: Shell("WinWord.exe C:\Documents And Settings\Nome Utente\Documenti\Pippo.doc"), 1 Dim X Dim X |
Nessun commento:
Posta un commento