Componenti aggiuntivi di Excel

Un componente aggiuntivo di Excel è un file (in genere con estensione .xla o .xlam) che Excel può caricare all’avvio. Il file contiene codice VBA che aggiunge funzionalità aggiuntive a Excel, solitamente sotto forma di nuove funzioni.

I componenti aggiuntivi forniscono un modo eccellente per aumentare la potenza di Excel e sono il veicolo ideale per la distribuzione delle funzioni personalizzate. Excel viene fornito con una varietà di componenti aggiuntivi pronti per essere caricati e iniziare a utilizzare e sono disponibili anche molti componenti aggiuntivi di terze parti.

Questo articolo mostra come scrivere una funzione personalizzata utilizzando Excel VBA e come salvarla e installarla come componente aggiuntivo. Le funzioni personalizzate sono spesso chiamate UDF (funzioni definite dall’utente).

Scrittura della funzione definita dall’utente

Un componente aggiuntivo può contenere tutte le UDF (funzioni definite dall’utente) che desideri e puoi aggiungerne altre di recente, semplicemente aprendo e modificando il file del componente aggiuntivo.

Passaggio 1: aggiungi un modulo di codice a una nuova cartella di lavoro

  1. Avvia Excel o, se hai già Excel aperto, crea una nuova cartella di lavoro vuota.

  2. Apri Visual Basic Editor dalla scheda Sviluppatore, vai alla scheda Sviluppatore.

  3. Fare clic su Visual Basic (tasti: ALT + F11), si aprirà Visual Basic Editor.

  4. In Visual Basic Editor, seleziona VBAProject nel pannello Esplora progetti. Questo seleziona la cartella di lavoro vuota.

Se Project Explorer non è visibile, aprilo andando su Visualizza> Project Explorer.

  1. Dal menu Inserisci scegliere Modulo. Questo aggiunge un nuovo modulo di codice vuoto alla cartella di lavoro selezionata. Vedrai anche il modulo apparire nel pannello Project Explorer.

ArrowAddingModule

Passaggio 2: immettere il codice della funzione definita dall’utente

Nella finestra del codice, digitare il codice di Age User Defined Function

ArrowAddingUDFCode

Passaggio 3: testare la funzione

Puoi provare subito la funzione. Passa a Excel e nella tua cartella di lavoro vuota (la stessa che stai utilizzando per creare il modulo di codice della funzione) inserisci una data in una cella. In un’altra cella, inserisci la tua funzione nello stesso modo in cui useresti una delle funzioni integrate di Excel, ad es. = Età (A1)

ArrowTestingFunction

Una UDF è disponibile per tutte le cartelle di lavoro aperte ogni volta che la sua cartella di lavoro host (la cartella di lavoro contenente il modulo di codice dell’UDF) è aperta. Tuttavia, se chiudi la cartella di lavoro host e provi a utilizzare la funzione in una cartella di lavoro diversa, si verificherà un errore. L’altra cartella di lavoro non riesce a trovare la funzione, quindi #NAME? viene visualizzato un errore.

Per superare l’errore riscontrato, è necessario dichiarare UDF all’interno di un componente aggiuntivo di Excel e assegnare un componente aggiuntivo di Excel all’applicazione Excel.

Creazione di un componente aggiuntivo di Excel

Salva la cartella di lavoro come componente aggiuntivo

La cartella di lavoro contenente il modulo del codice ora deve essere salvata come file di Excel Add-In (.xla o .xlam).

Nella finestra di Excel vai su File> Salva per aprire la finestra di dialogo Salva con nome. Immettere un nome per il file del componente aggiuntivo (si applicano le normali regole di denominazione dei file) e utilizzare l’opzione Salva come: per modificare il tipo di file in Componente aggiuntivo di Microsoft Excel (.xla) o (.xlam).

Prima di fare clic su [OK], controllare la posizione in cui si salva il file del componente aggiuntivo.

Infine fare clic su [OK] per accettare le modifiche. Il componente aggiuntivo è ora pronto per l’installazione e, se necessario, può essere distribuito ad altri utenti.

ArrowSavingAddin

Installazione dell’add-in

Vai a Strumenti> Componenti aggiuntivi per aprire la finestra di dialogo Componenti aggiuntivi. Se hai memorizzato il tuo componente aggiuntivo nella posizione predefinita, vedrai il suo nome visualizzato nella finestra Componenti aggiuntivi disponibili: (se hai archiviato il tuo componente aggiuntivo in una cartella diversa, usa il pulsante [Sfoglia] per trovarlo ).

Per installare il tuo componente aggiuntivo, metti un segno di spunta nella casella accanto al nome del tuo componente aggiuntivo e fai clic su [OK].

ArrowInstallingAddin

Non appena il componente aggiuntivo sarà installato, le sue funzioni saranno disponibili in Excel. Trovali nella sezione Definito dall’utente della Procedura guidata funzione (Strumento funzione Incolla) o semplicemente digitali in una cella come faresti con qualsiasi funzione incorporata. Il componente aggiuntivo rimarrà installato finché non si torna alla finestra di dialogo Componenti aggiuntivi e lo si disinstalla rimuovendo il segno di spunta dalla casella di controllo.

Aggiunta di UDF e modifiche a un componente aggiuntivo

Il file del componente aggiuntivo può contenere tutti i moduli e le funzioni personalizzate che desideri. Puoi aggiungerli in qualsiasi momento.

Se il tuo componente aggiuntivo è installato, lo vedrai elencato nel pannello Esplora progetti dell’editor VB. Individua il modulo contenente le tue funzioni e apporta le aggiunte e le modifiche desiderate. Se il tuo componente aggiuntivo non è installato, trova il file del componente aggiuntivo e fai doppio clic su di esso per aprirlo in Excel. Non sarai in grado di vederlo nella finestra di Excel ma apparirà nell’Esplora progetti dell’editor VB.

Ricordati di salvare le modifiche! Fallo dalla finestra dell’editor VB con File> Salva.

Segui sotto per il codice

'Insert below code in Addin

Option Explicit



Function Age(DoB As Date)

'Gives a name to the function and declares that a single argument is needed, which must be a date.

'Checking whether Date of Birth is zero

If DoB = 0 Then

Age = "type the correct Date of Birth"

Else

'If Date of Birth is not zero, compare the current month value with the Date of Birth

Select Case Month(Date)

'If current month is before (i.e. less than) the month of date of birth,

'then they have not had their birthday, so their age is this year minus their birth year minus 1

Case Is < Month(DoB)

Age = (Year(Date) - Year(DoB)) - 1

'If current month is same as the month of date of birth

'we need to know whether or not they have had their birthday yet

Case Is = Month(DoB)

'If today date is equal to or past the day of their birthday,

'then they have had their birthday (or it is today)

'so their age is this year minus their birth year?

'otherwise their age is this year minus their birth year minus 1

If Day(Date) >= Day(DoB) Then

Age = Year(Date) - Year(DoB)

Else

Age = Year(Date) - Year(DoB) - 1

End If

'If today?s month is after (i.e. greater than) the month of the person?s date of birth,

'they have had their birthday, so their age is this year minus their birth year.

Case Is > Month(DoB)

Age = Year(Date) - Year(DoB)

'Close the CASE statement

End Select

'Close the IF statement

End If



'Close the Function

End Function

Se ti è piaciuto questo blog, condividilo con i tuoi amici su Facebook e Facebook.

Ci piacerebbe sentire la tua opinione, facci sapere come possiamo migliorare il nostro lavoro e renderlo migliore per te. Scrivici a [email protected]