Come utilizzare le funzioni del componente aggiuntivo di Excel in VBA

Sommario:

Anonim

Se hai creato un componente aggiuntivo per contenere le tue funzioni personalizzate di Excel, potresti aver scoperto che, sebbene le funzioni funzionino correttamente in un foglio di lavoro di Excel, non puoi utilizzarle nelle procedure VBA in altre cartelle di lavoro. È come se l'editor di Visual Basic non potesse vedere loro. Bene, è perché non può! Questo articolo spiega come risolverlo.

Prima di tutto, considera se questo è davvero ciò che vuoi fare. I componenti aggiuntivi sono destinati principalmente all'aggiunta di funzionalità extra alle cartelle di lavoro. Quando carichi un componente aggiuntivo di Excel, la sua funzionalità diventa immediatamente disponibile per tutte le tue cartelle di lavoro. Se crei una procedura VBA che dipende da una funzione personalizzata contenuta in un'altra cartella di lavoro, quell'altra cartella di lavoro dovrebbe essere aperta ogni volta che desideri utilizzare la sua funzione. Lo stesso vale per una funzione personalizzata in un componente aggiuntivo. Se il componente aggiuntivo è caricato va bene, ma supponiamo che tu spedisca la tua cartella di lavoro a qualcun altro o la distribuisca al tuo gruppo di lavoro. Devi ricordarti di distribuire anche il componente aggiuntivo. Potrebbe essere più semplice includere una copia della funzione nel codice della cartella di lavoro in modo che le procedure abbiano accesso diretto ad essa (potrebbe essere necessario renderla un Funzione privata o cambiarne il nome per evitare conflitti di denominazione).

Non sto dicendo di non farlo. Devi solo pensarci prima, e se sei sicuro che il componente aggiuntivo sarà disponibile, allora vai avanti. Ecco come…

Quando sorge il problema?

Sto scrivendo una procedura per una delle mie cartelle di lavoro. Nella mia procedura voglio usare il RimuoviSpazi funzione che ho creato tempo fa e salvato nel mio Le funzioni di Martin Componente aggiuntivo attualmente installato nella mia copia di Excel. Ma quando provo a eseguire la mia procedura ottengo un errore.

L'editor di Visual Basic si comporta come se la funzione non esistesse, ma so che esiste e posso vederlo se guardo il codice all'interno del mio componente aggiuntivo. In effetti, il codice funziona correttamente se lo eseguo dall'interno del mio componente aggiuntivo.

Ho bisogno dell'editor di Visual Basic per poterlo fare vedere le funzioni nel mio componente aggiuntivo dall'interno del modulo di codice di a diverso cartella di lavoro.

Assegna al tuo componente aggiuntivo un nome progetto VBA

Ogni cartella di lavoro ha un Nome progetto VBA. È chiamato Progetto VBA. Puoi cambiare quel nome se vuoi, ma normalmente non mi preoccupo, perché normalmente non ha importanza.

Ti sei mai chiesto perché tutte le cartelle di lavoro visualizzate nel Esplora progetti pannello dell'editor di Visual Basic sono chiamati "Progetto VBA"? Se hai installato un componente aggiuntivo di Microsoft, vedrai che ha un nome diverso. Gli sviluppatori Microsoft hanno dato il loro Strumenti di analisi Componente aggiuntivo del nome del progetto VBA "funzioni".

La prima cosa da fare è dare al tuo componente aggiuntivo un nome progetto VBA univoco. Questo perché ci si riferirà ad esso con questo nome nel passaggio successivo e se ce ne sono più di uno con lo stesso nome, l'editor di Visual Basic non saprà quale utilizzare.

Nel Esplora progetti selezionare il nome del componente aggiuntivo. Se non è già aperto, visualizza l'editor di Visual Basic Finestra delle proprietà. Vedrai che c'è solo una proprietà, il Nome. Digita un altro nome e premi accedere. Dovrai obbedire alle solite regole di denominazione per VBA (cioè niente caratteri illegali e niente spazi). Vedrai che il nome viene applicato immediatamente nel Esplora progetti.

Ora salva le modifiche al tuo componente aggiuntivo. Assicurati che il tuo componente aggiuntivo sia selezionato nel Esplora progetti e scegli File > Salva.

Imposta un riferimento al componente aggiuntivo

In questo passaggio si comunica alla cartella di lavoro in cui si desidera utilizzare le funzioni del componente aggiuntivo che esiste il componente aggiuntivo. Lo fai da Impostazione di un riferimento al componente aggiuntivo. Potresti aver già incontrato questa tecnica se volevi scrivere codice Excel per comunicare con un altro programma come Veduta o Accesso.

Se è conveniente, riavvia Excel a questo punto. Questo perché il tuo componente aggiuntivo rinominato verrà ricaricato e l'elenco che stai per vedere verrà aggiornato. Se non è conveniente, non preoccuparti… leggi il paragrafo successivo e decidi cosa vuoi fare.

Apri un modulo di codice nella cartella di lavoro in cui desideri utilizzare le funzioni del componente aggiuntivo, quindi vai a Strumenti > Riferimenti per aprire il Riferimenti finestra di dialogo in cui vedrai un elenco di tutte le librerie e altri oggetti (come i componenti aggiuntivi) a cui puoi impostare un riferimento. Se hai riavviato Excel, questo elenco sarà stato aggiornato e sarai in grado di trovare il nome del progetto che hai assegnato al tuo componente aggiuntivo nell'ultimo passaggio. Metti un segno di spunta nella casella accanto al nome e fai clic su ok pulsante.

Se non hai riavviato Excel dovrai trovare il file del componente aggiuntivo facendo clic su Navigare pulsante sul Riferimenti dialogo. Questo apre il Aggiungi riferimento finestra. Cambiare il File di tipo: sezione a File Microsoft Excel (*.xls;*.xla) quindi cercare la cartella in cui è memorizzato il componente aggiuntivo.

Seleziona il tuo componente aggiuntivo e fai clic su Aprire. Questo aggiunge il tuo componente aggiuntivo all'elenco in cui puoi selezionarlo e fare clic ok.

NOTA: non è necessario eseguire entrambe queste procedure! Scegli uno o l'altro a seconda che tu abbia riavviato o meno Excel dopo aver modificato il nome del progetto VBA del componente aggiuntivo.

Ora sarai in grado di utilizzare le funzioni del componente aggiuntivo in qualsiasi modulo della cartella di lavoro in cui imposti il ​​riferimento e verranno riconosciute dall'editor di Visual Basic…

Se guardi il Esplora progetti vedrai che è stato applicato un riferimento alla cartella di lavoro…

È importante ricordare che l'aggiunta di un riferimento si applica solo alla cartella di lavoro per la quale è stata eseguita questa procedura. Dovrai farlo per ogni diversa cartella di lavoro in cui desideri utilizzare le funzioni del tuo componente aggiuntivo.

Informazioni sulla distribuzione dei file

Quando si aggiunge un riferimento a un componente aggiuntivo, questo collegamento al componente aggiuntivo viene "cablato" nel file. Se sposti il ​​file su un altro computer o lo distribuisci ai tuoi colleghi, la cartella di lavoro si aspetterà di trovare lo stesso componente aggiuntivo, nello stesso posto, sui loro computer. Inoltre, se il componente aggiuntivo viene spostato o eliminato dal computer, la cartella di lavoro non sarà in grado di trovarlo e il codice non funzionerà.

Alcune persone sostengono che il file e il relativo componente aggiuntivo dovrebbero sempre trovarsi nella stessa cartella per evitare i problemi che ciò potrebbe causare. Ovviamente puoi impostare nuovamente il riferimento per risolvere il problema.

Tieni in considerazione questi fattori e non avrai problemi.