Come Creare una Funzione Personalizzata in Microsoft Excel

Excel ha molte formule precaricate, forse centinaia, tipo SUM, VLOOKUP, LEFT e via dicendo. Quando però inizi a usare Excel per svolgere compiti più complessi, spesso ti accorgerai di avere bisogno di una funzione che non esiste tra quelle predefinite. Non ti preoccupare, non tutto è perduto, quello che ti serve è creare una funzione personalizzata.

Passaggi

  1. 1
    Crea una nuova cartella di lavoro oppure apri la cartella di lavoro in cui vuoi usare formula personalizzata appena creata.
  2. 2
    Apri l'editor di Visual Basic già incluso in Microsoft Excel cliccando su Strumenti-->Macro--> Visual basic editor (o premi alt+f11).
  3. 3
    Aggiungi un nuovo modulo alla cartella di lavoro cliccando sul bottone indicato nella figura. Puoi anche creare una formula direttamente nel foglio di lavoro senza aggiungere un nuovo modulo. Tuttavia in questo modo non ti sarà possibile usare la funzione in altri fogli della stessa cartella di lavoro.
  4. 4
    Crea un "header" o "prototipo" della funzione. Deve avere la struttura seguente: public function "Il nome della tua funzione" (parametro1 As tipo1, parametro2 As tipo2 ) As return TipoLa funzione può avere tutti i parametri che preferisci. Possono essere uno qualunque dei tipi di dati accettati da Excel, o anche oggetti come Range. Puoi pensare ai parametri come agli operandi sui quali la tua funzione lavorerà. Ad esempio se scrivi SIN(45) per calcolare il seno di un angolo di 45°, 45° sarà considerato un parametro. In seguito il codice della tua funzione utilizzerà questo valore per calcolare qualcos'altro e visualizzerà il risultato.
  5. 5
    Aggiungi il codice della funzione assicurandoti che: 1) usi i valori indicati dai parametri 2) assegni il risultato al nome della funzione; e 3) chiudi la funzione con "end function". Per imparare a programmare in VBA può servire del tempo e qualche tutorial dettagliato. Tuttavia le funzioni di solito hanno blocchi di codice non molto grandi e utilizzano solo alcune delle caratteristiche del linguaggio. Gli elementi più utili del linguaggio VBA sono:
    1. I blocchi If, che ti permettono di eseguire una parte del codice solo se una condizione è soddisfatta. Ad esempio:


      Public Function Course Result(grade As Integer) As String
        If grade >= 5 Then
          CourseResult = "Approved"
        Else
          CourseResult = "Rejected"
        End If
      End Function


      Nota che gli elementi di un blocco di codice If sono: IF condizione THEN codice ELSE codice END IF. La parola chiave Else che vedi nella seconda parte del codice è opzionale.
    2. Il blocco di codice Do, che esegue una parte del codice While, cioè mentre, o Until, cioè finché, una condizione è soddisfatta. Ad esempio:

      Public Function IsPrime(value As Integer) As Boolean
        Dim i As Integer
        i = 2
        IsPrime = True
        Do
          If value / i = Int(value / i) Then
            IsPrime = False
          End If
          i = i + 1
        Loop While i < value And IsPrime = True
      End Function


      Nota di nuovo i seguenti elementi: DO codice LOOP WHILE/UNTIL condizione. Nota anche la seconda riga di codice in cui la variabile è "dichiarata". Puoi aggiungere variabili al tuo codice in modo da poterle usare in seguito. Le variabili funzionano come valori temporanei inseriti all'interno del codice. Infine, nota la dichiarazione della funzione come BOOLEAN (booleana), che è un tipo di dati che autorizza solo i valori TRUE/FALSE (vero/falso). Questo metodo per determinare se un numero è primo non è certo uno dei migliori, ma l'ho lasciato così per rendere il codice più facile da leggere.
    3. Il blocco "for",, che esegue una parte di codice un numero di volte specificato. Ad esempio:

      Public Function Factorial(value As Integer) As Long
        Dim result As Long
        Dim i As Integer
        If value = 0 Then
          result = 1
        ElseIf value = 1 Then
          result = 1
        Else
          result = 1
          For i = 1 To value
            result = result * i
          Next
        End If
        Factorial = result
      End Function


      Nota di nuovo gli elementi:FOR variabile = limite inferiore TO limite superiore codice NEXT.Nota anche l'elemento ElseIf nell'istruzione If che ti permette al codice di far eseguire un numero maggiore di funzioni. Infine, nota la dichiarazione della funzione e della variabile "result" come Long. Il tipo di dati Long permette di usare valori di dati più ampi di Integer.

      Qui sotto è mostrato il codice di una funzione che converte piccoli numeri in parole.
  6. 6
    Torna indietro al tuo foglio di lavoro e utilizza la funzione facendo iniziare il contenuto di una cella con il simbolo di uguale seguito dal nome della funzione. Apri una parentesi e aggiungi il nome della funzione, i parametri separati da virgole e una parentesi di chiusura finale. Ad esempio:=NumeroALettera(A4)

    Puoi anche utilizzare la tua formula personalizzata cercandola nella categoria Definite dall'utente nella procedura guidata Inserisci Formula. Basta cliccare sul bottone 'Fx' che si trova a sinistra della barra delle formule.I parametri possono essere di tre tipi:
    1. Costanti digitate direttamente nella cella formula. In questo caso le stringhe devono essere messe tra virgolette.
    2. Riferimenti alle celle tipo B6 o intervallo tra i riferimenti di cella tipo A1:C3 (i parametri devono essere del tipo di dati Range).
    3. Altre funzioni annidate all'interno della tua funzione (la tua funzione può anche essere annidata all'interno di altre funzioni). Esempio: =Factorial(MAX(D6:D8))
  7. 7
    Verifica che il risultato è corretto dopo aver usato la funzione diverse volte, per essere sicuro che sia capace di gestire correttamente diversi parametri di valore.
    Pubblicità

Consigli

  • Ogni volta che scrivi un blocco di codice dentro una struttura di controllo come If, For, Do, etc. assicurati di indentare il blocco di codice usando la barra spaziatrice o il tasto tab (lo stile dell'indentazione è a tua scelta). Questo renderà il codice facile da capire e sarà più facile individuare gli errori e apportare miglioramenti.
  • Utilizza un nome che non è stato già impiegato da una delle funzioni standard di Excel altrimenti alla fine potrai usare solo una delle due funzioni.
  • Excel include molte funzioni predefinite e puoi fare molti calcoli usandole da sole o in combinazione tra loro. Assicurati di scorrere la lista delle funzioni predefinite prima di scriverne una nuova. L'esecuzione potrebbe essere più veloce se usi una delle funzioni precaricate.
  • A volte una funzione potrebbe non richiedere tutti i parametri per calcolare un risultato. In questo caso puoi usare la parola chiave Optional prima del nome del parametro nell'intestazione della funzione. Puoi anche usare la funzione IsMissing(nome_del_parametro) inserito nel codice per determinare se il parametro è assegnato a un valore oppure no.
  • Se non sai come scrivere il codice per una funzione leggi How to write a Simple Macro in Excel.
Pubblicità

Avvertenze

  • A causa di temporanee misure di sicurezza alcuni utenti potrebbero avere disabilitato le macro. Assicurati che i tuoi colleghi siano al corrente che la cartella che stai loro inviando contenga delle macro e che possono essere sicuri di non danneggiare i loro computer.
  • Le funzioni utilizzate in questo articolo non sono, in alcun modo, il modo migliore per risolvere i problemi loro collegati. Sono state usate solo per spiegare l'uso delle strutture di controllo del linguaggio.
  • VBA, come ogni altro linguaggio, ha molte altre strutture di controllo oltre a Do, If e For. Queste sono state qui spiegate solo per chiarire il tipo di operazioni che possono essere fatte all'interno del codice sorgente di una funzione. Sono disponibili on-line molti altri tutorial dove puoi imparare VBA.
Pubblicità

Informazioni su questo wikiHow

wikiHow è una "wiki"; questo significa che molti dei nostri articoli sono il risultato della collaborazione di più autori. Per creare questo articolo, autori volontari hanno collaborato apportando nel tempo delle modifiche per migliorarlo.
Categorie: Office

Hai trovato utile questo articolo?

No
Pubblicità