Passaggio di variabili tra progetti
Hai un problema con Excel? 
Passaggio di variabili tra progetti.
di zangyef (utente non iscritto) data: 02/04/2013 22:35:35
Ciao a tutti,
è possibile passare una variabile da un progetto ad un altro? Mi spiego meglio: ho scritto del codice che per comodità ho inserito in un componente aggintivo tipo .xla. Questo componente, caricato all'avvio di excel, deve interfacciarsi con il codice del foglio di lavoro aperto. Quindi ho due progetti progetto1.xla e progetto2.xls. E' possibile passare variabili tra i due progetti? Dichiarare la variabile Public non sembra funzionare...
Ho provato a guardare in giro ma non ho trovato nulla di molto comprensibile.
Grazie in anticipo!
di Vecchio Frac data: 03/04/2013 08:28:23
Interessante, up (mio promemoria per questo pomeriggio ^_^)
Strano che dichiarare la variabile Public (o Global) non serva.
Comunque puoi utilizzare una cella di uno dei due fogli di lavoro come variabile pubblica globale ^_^
di zangyef data: 03/04/2013 11:13:41
Infatti pare strano anche a me. Ma potrei essere io ad avere provato troppo in fretta senza la dovuta attenzione. Verifico anch'io.
PS: che differenza c'è tra Global o Public?
di Vecchio Frac data: 03/04/2013 12:00:26
Argomento interessante :)
Dim and Private work the same, though the common convention is to use Private at the module level, and Dim at the Sub/Function level. Public and Global are nearly identical in their function, however Global can only be used in standard modules, whereas Public can be used in all contexts (modules, classes, controls, forms etc.) Global comes from older versions of VB and was likely kept for backwards compatibility, but has been wholly superseded by Public.
In poche parole, Private funziona come Dim, per convenzione la prima dichiarazione si usa a livello di modulo, e Dim all'interno di Sub e Function. Similmente Public e Global assolvono la medesima funzione (rendere una variabile visibile a tutti i moduli di un progetto, a tutto il codice all'interno del modulo e a tutto il codice all'esterno del modulo questa è la definizione). Global può essere utilizzata però solo in moduli standard, mentre Public può essere utilizzata in tutti i contesti (moduli, classi, moduli, controlli ecc). La parola chiave Global è un retaggio di versioni precedenti di VB (dalla 3 in poi) e probabilmente è stata mantenuta per compatibilità all'indietro, e nell'uso comune si consiglia di utilizzare Public.
di Vecchio Frac data: 03/04/2013 14:01:23
Forse ho capito come fare (lo si fa centinaia di volte, ma non ci si sta mai a pensare davvero che serve proprio per questo ^_^).
Si tratta di impostare un riferimento a progetto1.xla per accedere ai suoi metodi (e variabili) pubblici.
Apri progetto2.xls, apri l'editor di codice, quindi Strumenti, Riferimenti, e dall'elenco scegli progetto1.xla. Visit che è un'aggiunta e l'hai già referenziata mediante Componenti aggiuntivi, dovresti trovartela nell'elenco.
Adesso da ogni Workbook aperto puoi tranquillamente accedere alle variabili Public della tua aggiunta.
Se non ti ricordi quali sono, l'Intellisense ti aiuterà come per qualsiasi altro oggetto disponibile: in progetto2.xls scrivi (in una zona qualsiasi del codice, anche fuori da una sub o function, tanto per vedere come funziona) "progetto1." e dopo aver digitato il punto compariranno tutti i metodi e gli attributi pubblici: da Foglio1, 2 e 3 a ThisWorkbook fino alle routine e variabili dichiarate Public.
Vuoi Approfondire?