教えて!ExcelVBA!

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

【ExcelVBA 関数】Rnd関数の使い方を教えて!

構文

構文は以下の通りです。

Rnd([数値])

解説

Rnd関数は、0以上1未満の範囲でランダムな実数を生成します。

引数 指定 内容
数値 省略可 単精度浮動小数点数型 (Single) の数値または任意の有効な数式を指定します。設定値に対する戻り値について、以下で紹介します。

設定値に対する戻り値は、以下の通りです。

数値 戻り値
< 0 数値を乱数の種として使用し、毎回同じ値を返します。
> 0 0以上1未満の疑似乱数を返します。
= 0 直前に生成した乱数の値を返します。
省略時 0以上1未満の疑似乱数を返します。

使用例

Rnd
Rnd(0)

使い方

具体的な使い方を説明します。

1.ランダムな数値の生成

まずは、基本的な使い方として、0以上1未満の範囲でランダムな数値を生成する例を紹介します。

Dim randomValue As Double
randomValue = Rnd()

上記のコードでは、Rnd関数を使用してランダムな数値を生成し、結果を変数「randomValue」に格納しています。

2.乱数の種の設定

Rnd関数の引数を使用することで、乱数の種を設定することができます。同じ乱数の種を設定すると、同じランダムな数列が生成されます。

Randomize [seed]

上記のコードでは、Randomize文を使用して乱数の種を設定しています。[seed]には整数値を指定します。乱数の種を設定しない場合、VBAの実行時に自動的に現在の時刻を乱数の種として使用します。

プログラミング例

サイコロの出目を生成するプログラミング例を示します。

Sub RollDice()
    Dim diceValue As Integer
    Randomize ' 乱数の種を設定
    diceValue = Int((Rnd() * 6) + 1) ' 1から6までのランダムな整数を生成
    MsgBox "出目: " & diceValue
End Sub

上記のコードでは、Randomize文を使用して乱数の種を設定し、Rnd関数とInt関数を組み合わせて1から6までのランダムな整数を生成しています。生成した整数がサイコロの出目を示しています。

まとめ

Rnd関数は、0以上1未満の範囲でランダムな実数を生成するための便利な関数です。引数を指定することで、乱数の種を設定することができます。是非活用してください。