エクセルにはrand関数という関数があり、セルに「=rand()」と入力するだけで0以上1未満の乱数を返してくれます。
乱数を発生させるこの関数は非常に便利ですが、一つ欠点があるとすれば、計算を行うたびに乱数が変化してしまい、再現性がないところにあります。プログラミングであれば、乱数にシード値を設定して、疑似乱数(乱数のように見えるが、該当のシード値を入力すれば同じ乱数(っぽいもの)を返してくれる)を発生させることで、分析の再現性を担保できます。その機能はエクセルのrand関数には残念ながらないので、マクロで作ってみることにしました。
Sub Giziransu()
Dim f As Single
Dim num As Long
For num = 1 To 10
f = Rnd(-num) ' シード値を -num にする
Debug.Print (f)
f = Rnd
Debug.Print (f)
Cells(num, 1).Value = f
Next num
End Sub
4行目では、「For num = 1 To 10」と書いていますが、これは乱数を10個発生させることを意味しています。もっとたくさん発生させたい場合は数字を増やしましょう。
9行目の「Cells(num, 1)」は1Aセルから乱数の入力をしていくことを意味しており、もし1Bセルから始めたければ「Cells(num+1, 2)」、2Aセルから入力したければ「Cells(num, 2)」としましょう。