VBATips

配列からランダムにデータを取得する【Rnd関数応用】【ExcelVBA】

配列のデータをランダムに取得したい

Rnd関数を使用すれば、ランダムに数値を取得する事が可能です。
配列からランダムでデータ取得するのも応用すれば、簡単に取得可能です。

Public Sub sample()
    Dim arr() As Variant
    
    '■配列を定義
    arr = Array("aaa", "bbb", "ccc", "ddd", "eee")
    
    '■ランダム初期化
    Randomize
    
    '■ランダムに配列からデータを取得
    Debug.Print arr(Int((UBound(arr) - LBound(arr) + 1) * rnd + LBound(arr)))   'ddd
    Debug.Print arr(Int((UBound(arr) - LBound(arr) + 1) * rnd + LBound(arr)))   'eee
    Debug.Print arr(Int((UBound(arr) - LBound(arr) + 1) * rnd + LBound(arr)))   'aaa
End Sub

注意点

  • Rnd関数を使用前にRandmizeで乱数を初期化しましょう。
    しないと保存してブック閉じる→再度開くと前回と同じ値を取得してしまいます。

関連記事

コメント

タイトルとURLをコピーしました