Excel VBA:乱数の生成|範囲指定しRAND関数で発生させる
RAND関数を使い、指定した範囲の乱数を生成するVBAを掲載しています。
Homeに戻る > Excel 数値・文字列・検索・印刷のTipsへ
VBAで乱数を発生させるにはRAND関数を使います。
そしてRAND関数の使用前に、Randomizeステートメントで初期化します。
Randomizeの構文
乱数ジェネレータを初期化します。
Randomize [number]
- number:(省略可能)RAND関数が使用する乱数テーブルを指定します。通常省略します。
RAND関数の構文
0以上1未満の乱数を発生します。
Rnd [num]
- num:(省略可能)シード値を単精度浮動小数点数型で指定します。シード値とは使用する乱数表の識別値のことです。
引数numに指定するシード値により、生成される乱数は次のように決まります。
引数numの値 |
戻り値 |
負の数値 |
numのシード値によって決まる同じ数値を常に返します。 |
正の数値 |
乱数系列から次の乱数を返します。 |
0 |
直前に生成した乱数と同じ値を返します。 |
省略した場合 |
乱数系列から次の乱数を返します。 |
ここでは、0か1(裏か表)、1~6(サイコロ)、1~10、1~100の範囲を指定した乱数を発生させています。
例えば1~6(サイコロ)の乱数の場合、Int((Rnd * 6) + 1の式になります。
INT関数で整数にし、0の場合があるので+1しています。
関連する記事として「RANDBETWEEN 指定した範囲の整数の乱数を発生させるExcel関数」を掲載していますので参照してください。
RAND関数を使い、指定した範囲の乱数を生成するVBA
VBAの解説
■ コマンドボタンクリックイベント
- ExRandomizeプロシージャを呼び出します。
■ ExRandomizeプロシージャ
- Randomizeステートメントで初期化します。
- Forループで10回乱数を発生させます。
- 5列目に0か1の乱数を表示します。
- 6列目に1~6の乱数を表示します。
- 7列目に1~10の乱数を表示します。
- 8列目に1~100の乱数を表示します。
Excel VBAシートコード
Option Explicit
'Excel VBAで乱数の生成
Private Sub ExRandomize()
Dim i As Integer
'乱数の初期化
Randomize
For i = 1 To 10
'裏(0)か表(1)かの乱数
Cells(i, 5) = Int(Rnd * 2)
'サイコロ(1~6)の乱数
Cells(i, 6) = Int((Rnd * 6) + 1)
'1~10の乱数
Cells(i, 7) = Int((Rnd * 10) + 1)
'1~100の乱数
Cells(i, 8) = Int((Rnd * 100) + 1)
Next
End Sub
Private Sub CommandButton1_Click()
'乱数の生成
ExRandomize
End Sub
Excel VBA 実行結果
E列が0か1、F列が1~6、G列が1~10、H列が1~100の範囲の乱数になっています。
Homeに戻る >
Excel 数値・文字列・検索・印刷のTipsへ
■■■
このサイトの内容を利用して発生した、いかなる問題にも一切責任は負いませんのでご了承下さい
■■■
当ホームページに掲載されているあらゆる内容の無許可転載・転用を禁止します
Copyright (c) Excel-Excel ! All rights reserved