教えて!ExcelVBA!

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

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

        f:id:m_kbou:20200304084843p:plain

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

 

【目次】

 

構文

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

=======================================================================

Rnd と Randomize

=======================================================================

[説明]:

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

 

使い方

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

[記述例]:

※以下の記述例は、VBE(VBA記述画面)に記述しないと実行ができません。VBEの開き方については、VBEの開き方を参考にして下さい。

-------------------------------------------------

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

-------------------------------------------------

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

[実行例]:

※1行目~5行目に乱数がセットされます。

f:id:m_kbou:20200304085041p:plain

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

 

おわりに

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