教えて!ExcelVBA!

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

ExcelVBAでRnd関数の使い方

構文

構文は以下の通りです。

結果 = Rnd

解説

Rnd関数は、0から1までのランダムな数を返す関数です。返される数値は少数で、1より小さい範囲でランダムに生成されます。主に、乱数を使った計算やシミュレーションに利用されます。この関数は「擬似乱数」を生成するため、完全にランダムではありませんが、実用的な場面では十分にランダムな値が得られます。初期のシード値が同じ場合、同じ順序で乱数が生成されるため、乱数のリセットやシードの変更にはRandomizeを使うことができます。

プログラミング例

具体的なプログラミング例を紹介します。

Sub ランダム数を生成()
    Dim 結果 As Single
    Dim 回数 As Integer
    ' 乱数のシードを設定
    Randomize
    ' 10回ランダムな数値を表示
    For 回数 = 1 To 10
        結果 = Rnd
        MsgBox "ランダムな数: " & 結果
    Next
End Sub

上記のプログラムは、Randomizeを使って乱数のシードを設定し、同じ乱数が繰り返されないようにしています。Rnd関数を使って0から1の間のランダムな数値を生成し、結果 という変数に保存しています。Forループを使って、10回ランダムな数を生成し、MsgBox関数でその数値を表示しています。

まとめ

Rnd関数は、0から1までのランダムな数値を生成する関数です。Randomize関数を使用して乱数のシードを設定することで、同じ順番の乱数を防ぎます。主にゲームやシミュレーションなど、ランダム性が必要な場面で活用されます。