VBA تابعی را برای برگرداندن یک مقدار تصادفی فراهم می کند. شما لزوماً از این تابع به تنهایی استفاده نمی کنید، بلکه به عنوان بخشی از یک ماکرو بزرگتر است که ممکن است به استفاده از مقادیر تصادفی نیاز داشته باشد. سینتکس تابع به صورت زیر است:
x = Rnd()
که در آن x نتیجه است. مقدار بازگشتی همیشه بین 0 و 1 خواهد بود. برای ترجمه این مقدار به مقدار تصادفی دیگر، تنها کاری که باید انجام دهید این است که نتیجه را در بالاترین عددی که می خواهید در نظر بگیرید ضرب کنید. به عنوان مثال، اگر می خواهید یک عدد صحیح تصادفی بین 1 تا 25 داشته باشید، می توانید از خط کد زیر استفاده کنید:
x = Int(25 * Rnd()) + 1
از آنجایی که Rnd همیشه مقداری بین 0 و 1 برمیگرداند (اما خود هرگز 1)، با ضرب مقداری که برمیگرداند در 25 و سپس با استفاده از تابع Int در آن نتیجه، عددی بین 0 تا 24 برمیگردد. در نهایت، 1 به این نتیجه اضافه میشود. به طوری که x با عددی بین 1 تا 25 با احتساب برابر خواهد بود.
اگر یک عدد ممیز شناور تصادفی می خواهید، حذف تابع Int از این کد به درستی کار نخواهد کرد. در عوض، شما باید فرمول را به این صورت تغییر دهید:
x = (Rnd() * 24) + 1