自分用のメモです。

卒論 part3 内容は信用しないで。

前回の内容は一度投稿したものの、新しい知識を得たので書き足しました。

今後もそのようなことはあると思います。

 

・乱数

なんやかんやいろんなプログラムでランダムを生むために乱数はよく使いますね。

私自身はゲームでも乱数調整とか言って時刻をいじって目的のものを出したり、などもよくやってて、身近な存在です。

最小値≦乱数≦最大値 といった間の整数の乱数を得るには

 

乱数=Int*1 + 1
        If flg(j) = False Then
            flg(j) = True
            Exit Do
        End If
    Loop
    a(i) = j
    Worksheets("Sheet1").Cells(i + 1, 1).Value = j
Next

 って感じでいけましたね。

 

話が変わりますが、サンプルプログラムの関係ない部分が全く理解できなくて、調べてたら、Rangeというものが置く深すぎる。

これをきっりり理解しなきゃ、ずっとググりながらプログラム書くことになりそうです。なんせRangeはオブジェクトのRangeとプロパティのRangeと変数のRangeがあるんですよ。個人的に変数のRangeってなにもの?!って感じです。

 

*1:最大値 - 最小値 +1 ) * Rnd + 最小値)

 

すべてはこれにつきますw

ただし!!これだけだと、シート起動後の挙動が、毎回 同じになります。

そこで魔法の言葉

Randomize

を乱数を生成する前に1回唱えてやると毎回ちがう乱数がきっちり生成されます。

 

乱数を大量に作ったり、かぶらないように乱数を作成するプログラムは

前回までの内容と組み合わせたらできますね。

 

重複しないランダムな数値・乱数を作成するExcelマクロ:エクセルマクロ・Excel VBAの使い方-マクロのサンプル

 これを参考にしましたが、

Dim i As Integer
Dim j As Integer
Dim 個数 As Integer '欲しい乱数の個数
    個数 = xxx
Dim a(個数-1) As Integer '乱数を格納する場所
Dim flg() As Boolean

ReDim flg(1 To 個数)
Randomize

For i = 0 To 個数 - 1
    Do
        j = Int(Rnd * (個数

リンクは無断で張っておりますm(__)m
問題がある方はお手数おかけしますが、コメントを下さい。
速やかに、削除させていただきます。