乱数を発生させるVBA(Visual Basic for Applications)マクロをご紹介しました。
このようなコードをご紹介すると、
「Randomizeって何をするものですか?」
「Randomizeステートメントとは何なのですか? 」
といったご質問をいただくことがあります。
Rnd関数を使ったサンプルマクロ
Randomizeステートメントの役割を知るには、以下のようなマクロを作成してテストをしてみるといいでしょう。
ActiveCell.Value = Rnd
End Sub
アクティブセルに、単精度浮動小数点型(Single型)の数値を入れるだけのマクロです。
上記のマクロを作成してまずは保存してください。保存するまで上記のマクロを絶対に実行しないでください。
保存したら、A1セルを選択した状態で上記の「Rnd関数のテスト」マクロを実行してください。次にA2セルを選択した状態でもう一度マクロを実行してください。
A1セルとA2セルには当然異なる乱数が表示されているはずです。
そのファイルを上書き保存をして一旦Excelを終了させてください。
上書き保存した、先のマクロの含まれているファイルをもう一度開き、B1セルを選択して「Rnd関数のテスト」マクロを実行してください。さらにB2セルを選択してマクロをもう一度実行してください。
A1:A2セルとB1:B2セルに表示されている数値を見て、Rnd関数やRandomizeステートメントについてあまりご存じない方は、「あれっ」と思うはずです。
Randomizeステートメントを追加したサンプルマクロ
では次に、先の「Rnd関数のテスト」マクロを以下のように修正してください。
Randomize
ActiveCell.Value = Rnd
End Sub
「ActiveCell.Value = Rnd」の前に「Randomize」を追加しただけです。変更したらマクロを実行しないで上書き保存をしてExcelを終了してください。
変更した「Rnd関数のテスト」マクロの含まれるExcelファイルを開き直し、C1セルを選択して「Rnd関数のテスト」マクロを実行、C2セルを選択してもう一度実行して、上書き保存をしてExcelを終了させてください。
もう一度Excelファイルを開き直し、D1セルを選択して「Rnd関数のテスト」マクロを実行、D2セルを選択いてもう一度実行してください。
C1:C2セルの数値とD1:D2セルの数値を見ても、「あれっ」っと思うことはないはずです。
これがRandomizeステートメントの役目です。
これがヘルプに書いてある以下の文章の意味するところです。
Home » エクセルマクロ・Excel VBAの使い方 » VBA関数 » Randomizeステートメントとは?