3

現時点では、このマクロを使用してランダムなシーケンスを生成しています。取得しているシーケンスが実際にランダムであることを確認したかっただけです (コンピューターがランダムに実行できる最善の方法です)。

Sub Random()
For x = 1 To Selection.Rows.Count
   r = Int(Rnd(1) * (Selection.Rows.Count) + 1)
   For z = 1 To Selection.Columns.Count
       y = Selection.Cells(x, z).Formula
       Selection.Cells(x, z).Formula = Selection.Cells(r, z).Formula
       Selection.Cells(r, z).Formula = y
   Next z
Next x
End Sub

非常に平凡な質問で申し訳ありませんが、これについては安心が必要です。

どうもありがとう

4

1 に答える 1

4

Forこの行を行の直後に追加します

Randomize Timer

これにより、生成された数値のランダム性のシードとしてタイマーが使用されるため、同じ乱数が二度と得られなくなります。

あなたのコードは

Sub Random()
For x = 1 To Selection.Rows.Count
   Randomize Timer
   r = Int(Rnd(1) * (Selection.Rows.Count) + 1)
   For z = 1 To Selection.Columns.Count

       y = Selection.Cells(x, z).Formula
       Selection.Cells(x, z).Formula = Selection.Cells(r, z).Formula
       Selection.Cells(r, z).Formula = y
   Next z
Next x
End Sub
于 2012-11-05T08:25:22.797 に答える