- 2009-06-08 (月) 20:00
- Excel VBA
今回のネタは乱数でサンプルデータを生成したいときなどに使えますかね。
ソースコード
Sub randloop()
Randomize ' シードの設定(引数省略でシステムタイマーの値)
Const GYO_S As Integer = 1 ' 開始行
Const RETSU_S As Integer = 1 ' 開始列
Const GYO_E As Integer = 10 ' 終了行
Const RETSU_E As Integer = 5 ' 終了列
Const UPPER As Integer = 100 ' 乱数の最大値
Const LOWER As Integer = 0 ' 乱数の最小値
' 指定された行、列のテーブル内のセルに乱数を格納
For i = GYO_S To GYO_E
For j = RETSU_S To RETSU_E
' Rndは[0, 1)の範囲の値を返す
Cells(i, j).Value = Int((UPPER - LOWER + 1) * Rnd + LOWER)
Next j
Next i
End Sub
実行結果は上図のように0~100の範囲の乱数(今回は整数)が格納されます。
上記のコードの要の式は
(upper - lower + 1) * Rnd + lower
です。簡単に意味を説明しますと括弧内の+1はRndの戻り値の範囲が1未満の為の補正で、式の最後の+lowerはRndの戻りが0の場合の補正、と捉えます。
参考サイト
関連記事
- Excel VBA: Hello Worldと変数、配列の宣言
- C++でMIN以上MAX未満の乱数を生成
- Rで統計: ヒストグラムの描画 - hist()関数
- Python: 乱数の生成 - random()、randint()、uniform()、seed()メソッド
- Python: モジュールにテスト関数を定義 - 重複のない乱数(整数MIN以上MAX以下)の生成
Sponsored Link
- Newer: SJC-Pに受かった
- Older: Java: OR論理演算子の評価条件
Comments:0
Trackbacks:0
- Trackback URL for this entry
- http://www.yukun.info/blog/2009/06/excel-vba-random-rnd-cells.html/trackback
- Listed below are links to weblogs that reference
- Excel VBA: 指定した行、列内のテーブルのセルに乱数を格納 from Yukun's Blog