Funzione definita dall'utente (UDF) di Excel VBA
Microsoft ci offre molte funzioni integrate per velocizzare il lavoro in Excel. Tuttavia, utilizzando la codifica VBA possiamo creare le nostre funzioni e quelle funzioni sono tecnicamente chiamate "Funzioni definite dall'utente " (UDF). Sono anche chiamate "funzioni personalizzate" in Excel VBA.
Qualsiasi formula a cui è possibile accedere dal foglio di lavoro con un pezzo di codice viene chiamata UDF. In termini semplici, qualsiasi formula che non è incorporata ma disponibile in Excel è chiamata Funzioni definite dall'utente.

Come creare funzioni definite dall'utente?
Anche se UDF fa parte del nostro modulo, non fa parte della nostra normale subroutine in VBA. Questa è chiamata procedura di funzione in VBA. Analogamente a come iniziamo la codifica della macro con la parola SUB in modo simile, dobbiamo iniziare utilizzando la parola "Funzione". La procedura secondaria ha inizio e fine, allo stesso modo la procedura funzione ha inizio e fine.
Esempio n. 1: creare una semplice funzione di somma UDF
Creeremo la nostra funzione SOMMA in Excel sommando due numeri.
- Per avviare la codifica, avviare la parola "Funzione" in uno dei moduli.

- Come il modo in cui denominiamo la macro in modo simile, dobbiamo anche dare un nome alla nostra funzione. Questo nome viene utilizzato come nome della formula.

A differenza della subroutine, non possiamo semplicemente premere invio per creare una procedura, ma dobbiamo menzionare gli argomenti qui.
Ad esempio, osserva la sintassi seguente della funzione del foglio di lavoro SOMMA.
Numero 1, Numero 2 sono argomenti della funzione SOMMA.
- Allo stesso modo, dobbiamo menzionare i nostri argomenti.

Qui ho dichiarato gli argomenti come "x as Integer" e "y as Integer". Poiché aggiungiamo un valore numerico, dobbiamo assegnare il tipo di dati solo come tipo di dati numerico.
Dopo aver dichiarato gli argomenti, ho assegnato anche il tipo di ritorno di Integer perché il risultato dato dalla Funzione “OurSum” è anche un valore numerico.
- Ora all'interno della funzione, dobbiamo menzionare la formula che useremo. Qui dobbiamo usare la funzione per iniziare.

Abbiamo menzionato il nome della formula " OurSum " dovrebbe aggiungere x e y.
- Ok, salva il codice e vai al foglio di lavoro.

- Ho inserito alcuni numeri qui. Apri il segno di uguale e inizia a digitare OurSum. Puoi vedere il nome della formula apparire qui.

- Come come selezioniamo le celle in modo simile, selezioniamo due celle separatamente.

- Dopo aver selezionato due celle, premi il tasto Invio per ottenere risultati.

Quindi funziona esattamente come la nostra normale funzione SUM.
- Ok, ora cambierò i numeri.

- Ora di nuovo, applicherò la funzione che abbiamo creato.

Oh!!! Abbiamo ottenuto i valori di errore ad eccezione della prima cella.
Stai pensando al motivo per cui abbiamo ricevuto un errore.
Se osservi le celle A2 e B2, abbiamo i valori 48170 e 21732. Poiché abbiamo assegnato il tipo di dati come Integer, non può contenere un numero maggiore di 32767. Questo è il motivo per cui abbiamo ricevuto l'errore Excel come #NUM !.
Ora aggiungerò numeri inferiori a 32767.

Nell'immagine sopra, tutti i numeri sono numeri interi, cioè inferiori a 32767.
Nella prima cella, abbiamo ottenuto i risultati. Ma nella seconda cella, ovvero la cella C2, abbiamo ottenuto il valore di errore #VALORE !.
Anche se entrambi i numeri sono inferiori a 32767, l'errore viene comunque visualizzato.
Questo perché abbiamo dichiarato il risultato finale anche come Integer.

Quindi, quando aggiungiamo 16000 e 17229, otterremo un valore come 33229, che è maggiore del limite del tipo di dati intero di 32767. Quindi il risultato finale è un valore di errore.
Esempio # 2: creare una funzione per testare i valori logici
Creeremo un'altra funzione per testare i valori logici. Abbiamo bisogno di una funzione che restituisca "Buono" se il numero è> = 60, e abbiamo bisogno del risultato come "Cattivo" se il numero è <= 50.
Passaggio 1: avviare la procedura della funzione e assegnare un nome alla procedura.

Passaggio 2: fornire l'argomento come TestScore come Integer.

Passaggio 3: il nostro risultato finale dovrebbe essere "Buono" o "Cattivo", quindi il risultato dovrebbe essere in stringa.
Passaggio 4: in primo luogo, dobbiamo verificare se il punteggio è> = 60 o meno. Utilizzare la condizione IF per eseguire il test.

Passaggio 5: se il punteggio del test è> = 60, è necessario che la funzione restituisca il risultato "Buono". Quindi TestResult = "Good".

Passaggio 6: se il punteggio del test è inferiore a 60, il risultato della funzione dovrebbe essere "Cattivo".

Ok, abbiamo finito.
- Salva il codice e vai al foglio di lavoro.

Ho inserito alcuni numeri qui come punteggio del test.
- Applica la funzione che abbiamo creato per arrivare ai risultati.

- Seleziona la cella e premi invio.

Questo è ciò di cui si occupa UDF.