教えて!ExcelVBA!

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

ExcelVBAでRandomize関数の使い方

構文

構文は以下の通りです。

Randomize [数値]

解説

Randomize関数は、VBAでランダムな数値を生成するときに使います。特に、乱数を生成するための初期シードを設定するのに役立ちます。Randomizeを使うことで、毎回異なる乱数のシーケンスを得ることができます。数値はオプションの引数で、この数値を元に乱数のシードが設定されます。もし数値を指定しなければ、現在のシステム時間が使用されます。注意点としては、Randomizeを呼び出さない場合、常に同じ乱数のシーケンスが生成されることになります。

プログラミング例

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

Sub ランダム数を表示()
    Dim 乱数 As Double
    ' 乱数のシードを現在の時間で初期化
    Randomize
    ' 0から1の範囲で乱数を生成
    乱数 = Rnd
    ' 生成した乱数をメッセージボックスで表示
    MsgBox "生成された乱数は: " & 乱数
End Sub

上記のプログラムでは、Randomizeを使って乱数のシードを現在のシステム時間で初期化し、その後、Rnd関数で0から1までのランダムな数値を生成しています。生成された乱数はメッセージボックスに表示されます。Randomizeを使わない場合、VBAは常に同じ乱数のシーケンスを生成するため、異なるランダムな結果を得たい場合には、必ずRandomizeを使うようにしてください。

まとめ

Randomize関数は乱数の初期シードを設定するために使用されます。オプションの数値引数を使って特定のシードを設定できますが、指定しなければシステム時間が使われます。Randomizeを使わないと、乱数のシーケンスが常に同じになります。