Vba chiama funzione da un altro modulo
Dopo aver scritto il codice, chiudere la finestra facendo clic sull’icona della croce (x) in alto a destra. Non preoccupatevi, Excel non si chiuderà.Spiegazione: Per creare una funzione in Excel VBA, si utilizza la parola chiave “Function” seguita dal nome della funzione (che può essere qualsiasi cosa), seguita dalla dichiarazione delle variabili e dei loro tipi tra parentesi graffe, seguita dal tipo di funzione, seguita da ciò che la funzione fa, seguita da “End Function” per chiudere la funzione.In questo caso, il nome della funzione è “Area”, il tipo di funzione è donato dal tipo di dati “Double”, X e Y sono variabili e il loro tipo di dati è Double. La funzione moltiplica i valori delle variabili X e Y e li memorizza nella variabile Area.Ecco un esempio:Ora è possibile richiamare questa funzione da qualsiasi altra parte del codice, semplicemente utilizzando il nome della funzione e indicando un valore per ciascun argomento (in questo caso, indicando il valore della variabile x e della variabile y).Il pulsanteOra posizionate un pulsante di comando sul vostro foglio Excel facendo clic sulla scheda Sviluppatore, selezionando “Inserisci” e quindi selezionando l’icona del pulsante di comando nei Controlli ActiveX.Trascinate il pulsante di comando sul foglio di lavoro Excel. Fate doppio clic sul pulsante di comando (assicuratevi che la modalità di progettazione sia attiva). Si apre una nuova finestra (Visual Basic Editor). Scrivete la seguente riga di codice. Dim z come Double
Funzione Vba
Un progetto VBA può contenere più moduli, moduli di classe e moduli utente. Ogni modulo contiene una o più procedure, ovvero sottoprocedure o funzioni. Le procedure suddividono un programma in componenti più piccoli e specifici. Una procedura VBA, detta anche macro, è definita come un insieme di codici che fanno eseguire un’azione a Excel. Una procedura è solitamente di due tipi: una sottoprocedura o una funzione. Il terzo tipo di procedura è la Proprietà, utilizzata per i moduli di classe. Come spiegato in dettaglio di seguito: le sottoprocedure non restituiscono un valore; le funzioni restituiscono un valore; le procedure di proprietà sono utilizzate per restituire e assegnare valori e impostare un riferimento a un oggetto.
Una categoria di sottoprocedure è costituita dalle Procedure evento che vengono attivate da un evento predefinito e sono installate all’interno di Excel con un nome standard e predeterminato, ad esempio la procedura di modifica del foglio di lavoro viene installata con il foglio di lavoro – “Private Sub Worksheet_Change(ByVal Target As Range)”, che combina il nome dell’oggetto, il trattino basso e il nome dell’evento. L’altra categoria di sottoprocedure è quella delle procedure create dall’utente. Per una comprensione dettagliata delle procedure evento, consultate la nostra sezione: Eventi di Excel VBA, Procedure di evento (gestori), Attivazione di una macro VBA.
Vba chiama funzione da sub
Se si desidera che Excel VBA esegua un’attività che restituisca un risultato, è possibile utilizzare una funzione. Inserite una funzione in un modulo (nell’Editor di Visual Basic, fate clic su Inserisci, Modulo). Ad esempio, la funzione con nome Area.
Spiegazione: Questa funzione ha due argomenti (di tipo Double) e un tipo di ritorno (la parte dopo As anch’essa di tipo Double). È possibile utilizzare il nome della funzione (Area) nel codice per indicare il risultato che si desidera restituire (in questo caso x * y).
Spiegazione: La funzione restituisce un valore, quindi è necessario ‘catturare’ questo valore nel codice. A tale scopo si può utilizzare un’altra variabile (z). Successivamente, si può aggiungere un altro valore a questa variabile (se si vuole). Infine, si può visualizzare il valore utilizzando un MsgBox.
Spiegazione: Questa funzione ha due argomenti (di tipo Double). Non ha un tipo di ritorno! È possibile fare riferimento a questa sottoparte (chiamare la sottoparte) da qualche altra parte nel codice, semplicemente utilizzando il nome della sottoparte e fornendo un valore per ogni argomento.
Riuscite a vedere la differenza tra la funzione e la sub? La funzione restituisce il valore 15. Abbiamo aggiunto il valore 2 a questo risultato e abbiamo visualizzato il risultato finale. Quando abbiamo chiamato la sub, non abbiamo più avuto alcun controllo sul risultato (15) perché una sub non può restituire un valore!
Valore di ritorno della funzione di chiamata Vba
La seguente procedura Sub utilizza la funzione Min del foglio di lavoro per determinare il valore più piccolo in un intervallo di celle. Innanzitutto, la variabile myRange viene dichiarata come oggetto Intervallo e quindi impostata sull’intervallo A1:C10 del Foglio1. A un’altra variabile, risposta, viene assegnato il risultato dell’applicazione della funzione Min a myRange. Infine, il valore della risposta viene visualizzato in una casella di messaggio.
Se si utilizza una funzione del foglio di lavoro che richiede un riferimento a un intervallo come argomento, è necessario specificare un oggetto Intervallo. Ad esempio, è possibile utilizzare la funzione Corrispondenza del foglio di lavoro per cercare un intervallo di celle. In una cella del foglio di lavoro, si inserisce una formula come =MATCH(9,A1:A10,0). Tuttavia, in una procedura di Visual Basic, si dovrebbe specificare un oggetto Intervallo per ottenere lo stesso risultato.
Per inserire una funzione del foglio di lavoro in una cella, si specifica la funzione come valore della proprietà Formula dell’oggetto Range corrispondente. Nell’esempio seguente, la funzione RAND del foglio di lavoro (che genera un numero casuale) viene assegnata alla proprietà Formula dell’intervallo A1:B3 del Foglio1 della cartella di lavoro attiva.