Excel VBAの乱数を生成するサンプル(Rnd関数)

ExcelのVBAのRnd関数で、乱数を生成するサンプルです。

目次

Rnd関数 Rnd関数
  配列の値をランダムに表示する

Rnd関数

Rnd関数は、0 以上 1 未満の値を乱数で返します。

乱数を整数で取得する+範囲をつける場合

Int((最大値 - 最小値 + 1) * Rnd + 最小値)

乱数を整数で取得する+範囲をつける場合は、上記の式を使用します。
整数を取得する場合は、Intを使用します。
乱数の値を1から10にしたい場合は、最小値に1、最大値に10をセットします。

以下は、MicrosoftのVBAのRnd 関数のリンクです。
https://docs.microsoft.com/ja-jp/office/vba/language/reference/user-interface-help/rnd-function

Rnd 関数のサンプルです。

Sub test1()

    Dim a As Integer

    a = Int((2 - 0 + 1) * Rnd + 0)

    Debug.Print a '0から2
    
    
    a = Int((3 - 1 + 1) * Rnd + 1)

    Debug.Print a '1から3
    
End Sub

5行目は、Rnd 関数で乱数を生成して最大値(2)と最小値(0)の計算を行いintで整数を返しています。
7行目は、0から2の値をランダムに返します。
10行目は、Rnd 関数で乱数を生成して最大値(3)と最小値(1)の計算を行いintで整数を返しています。
12行目は、1から3の値をランダムに返します。

配列の値をランダムに表示する

配列の値をランダムに表示するサンプルです。

Sub test1()

    Dim ar1 As Variant
    
    ar1 = Array("赤", "黄", "青")

    r = Int((2 - 0 + 1) * Rnd + 0) '0から2

    Debug.Print ar1(r) '
    
End Sub

5行目は、配列です。
7行目は、0から2の値をランダムに返します。配列のインデックス値になります。
9行目は、配列の値をランダムに表示します。

関連の記事

Excel VBAのFor Each文のサンプル
Excel VBAの配列の仕組みと使い方のサンプル

△上に戻る