VBA fornisce una funzione per restituire un valore casuale. Non useresti necessariamente questa funzione da sola, ma come parte di una macro più grande che potrebbe richiedere l’uso di valori casuali. La sintassi per la funzione è la seguente:
x = Rnd()
Dove x è il risultato. Il valore restituito sarà sempre compreso tra 0 e 1. Per tradurre questo in un altro valore casuale, tutto ciò che devi fare è moltiplicare il risultato per il numero più alto che vuoi considerare. Ad esempio, se si desidera un numero intero casuale compreso tra 1 e 25, è possibile utilizzare la seguente riga di codice:
x = Int(25 * Rnd()) + 1
Poiché Rnd restituisce sempre un valore compreso tra 0 e 1 (ma mai 1 stesso), moltiplicando ciò che restituisce per 25 e quindi utilizzando la funzione Int su quel risultato otterrai un numero compreso tra 0 e 24. Infine, aggiungendo 1 a questo risultato, x sarà uguale a un numero compreso tra 1 e 25, inclusi.
Se si desidera un numero in virgola mobile casuale, la semplice rimozione della funzione Int da questo codice non funzionerà correttamente. Invece, dovrai modificare la formula in questo modo:
x = (Rnd() * 24) + 1