教えて!ExcelVBA!

ExcelVBAの基礎知識・書き方について紹介します。

【ExcelVBA 関数】Rnd関数で乱数を発生させる方法を教えて!

f:id:m_kbou:20200420125136p:plain

乱数を発生させる方法について説明します。乱数とはランダムに発生する数値の事を指します。

 

 

構文

記述方法は以下の通りとなります。

Rnd と Randomize

[説明]:

Rnd関数0以上1未満の範囲でランダムな数値を発生させて単精度浮動小数点数型(Single)の値を返します。Rnd関数はRandomizeステートメントと一緒に使われる事が多く、Randomizeステートメントは乱数系列を初期化する役割があります。内容を纏めると、「任意の乱数を発生させて下さい。」との意味になります。

 

使い方

使い方について具体的に説明していきます。

[プログラミング例]:

Sub サンプル()
   
    Dim 行 As Double
   
    Randomize
   
    For 行 = 1 To 5
        Range("A" & 行) = Rnd
    Next
       
End Sub

内容は、「最初に変数:行を定義します。次にRandomizeステートメントで乱数系列の初期化をします。最後にFor~Next文を使い変数:行に1~5の数値をセットしながら乱数を発生させてA列1行目~5行目にセットして下さい。」との意味になります。

f:id:m_kbou:20210222122235p:plain

※上記のプログラミング例は、VBE(VBA記述画面)に記述しないと実行ができません。VBEの開き方についてはこちらを参考にして下さい。 

[実行例]:

①<実行>ボタンには上記のプログラミング例のプログラムが登録されています。<実行>ボタンをクリックします。(※ボタンにプログラムを割り当てるにはこちらを参考にして下さい。)

f:id:m_kbou:20210301170725p:plain

②処理結果は以下の様になります。1行目~5行目に乱数がセットされます。

f:id:m_kbou:20210301170738p:plain

[サンプル]:

上記で説明したファイルをダウンロードできます。ご自由にお使い下さい。

drive.google.com 

乱数を発生させる方法についての説明は以上です。

 

プログラミング(サンプル)

プログラミング事例を紹介します。

www.osiete-excelvba.work

 

おわりに

今回はRnd関数を使用した乱数を発生させる方法について説明しました。乱数はテストデータやシュミレーションデータ等を作成する場合に使用する事が多いです。是非活用してみて下さい。