Visual Basic for Applications:
Generera slumpmässiga nummer
Hur man gör:
I VBA används funktionen Rnd
för att generera slumpmässiga nummer. Som standard genererar Rnd
ett flyttal med enkel precision som är större än eller lika med 0 och mindre än 1. Här är några steg och exempel för att effektivt utnyttja slumpmässiga nummer:
Enkelt Slumpmässigt Nummer: För att generera ett grundläggande slumpmässigt nummer behöver du bara anropa
Rnd()
:Sub GenerateRandomNumber() Dim randomNumber As Single randomNumber = Rnd() ' Slumpmässigt nummer mellan 0 och 1 MsgBox randomNumber End Sub
Sätta Seed: Uttalandet
Randomize
initierar generatorn för slumpmässiga nummer, vilket kan vara avgörande för att säkerställa olika utfall varje gång din VBA-kod körs:Sub SeedRandomNumber() Randomize Dim randomNumber As Single randomNumber = Rnd() MsgBox randomNumber End Sub
Generera Nummer inom ett Intervall: Ofta vill du ha ett slumpmässigt nummer inom ett specifikt intervall. Så här genererar du ett nummer mellan 1 och 100:
Sub RandomNumberInRange() Randomize Dim randomNumber As Integer randomNumber = Int((100 * Rnd()) + 1) ' Slumpmässigt nummer mellan 1 och 100 MsgBox randomNumber End Sub
Exempel på Utdata:
Efter att ha kört RandomNumberInRange
kanske du ser en meddelanderuta som visar ett nummer som 45
.
Fördjupning:
Funktionen Rnd
i VBA, även om den är lätt att använda, genererar faktiskt pseudoslumpmässiga nummer baserade på en deterministisk algoritm. Detta innebär att sekvenserna av nummer den producerar inte är helt slumpmässiga, men kan ofta räcka för vanliga uppgifter som behöver stokastiska processer.
Historiskt sett går förmågan att generera slumpmässiga nummer i VBA tillbaka till tidiga versioner av Basic, och har med tiden anpassats för att inkludera funktioner som Randomize
för att förbättra slumpmässigheten genom att så algoritmen med en startpunkt. Dock, för tillämpningar som kräver höga nivåer av slumpmässighet såsom säkra kryptografiska operationer, kanske VBA:s Rnd
inte är det bästa verktyget. Alternativ i robustare programmeringsmiljöer eller språk utformade med kryptografi i åtanke, som Pythons secrets
-modul eller Javas SecureRandom
, bör övervägas.
Trots sina begränsningar fortsätter enkelheten och tillgängligheten att generera slumpmässiga nummer i VBA att göra det till ett värdefullt verktyg för ett brett spektrum av lättare applikationer, simuleringsarbete och utbildningsändamål.