excel vba コードから列の値をランダムに取得する

excel vbaにおいて


列Aには連続して値が入力されているのですが、

その値を配列に格納して、


値をランダムにひとつ取得する、

というようなスニペットを記述していただけないでしょうか?



もちろん、できますよ。

以下は列Aの値を配列に格納し、

その中からランダムに1つの値を取得するVBAのスニペットです。



```vba


Sub GetRandomValueFromColumnA()

    Dim rng As Range

    Dim cell As Range

    Dim values() As Variant

    Dim i As Integer

    Dim randomIndex As Integer


    ' A列の範囲を取得

    Set rng = Range("A1:A" 

& Cells(Rows.Count, "A").End(xlUp).Row)


    

    ' 配列に値を格納

    ReDim values(1 To rng.Count)

    i = 1

    For Each cell In rng

        values(i) = cell.Value

        i = i + 1

    Next cell


    ' ランダムなインデックスを取得

    Randomize

    randomIndex = Int(

(UBound(values) - LBound(values) + 1)

* Rnd + LBound(values))


    ' ランダムな値を出力

    MsgBox "ランダムに取得された値: " & values(randomIndex)

End Sub



```


このコードは、列Aの最初の行(A1)から

最後の入力された行までの値を配列に格納し、

その配列からランダムに1つの値を取得してメッセージボックスに表示します。


何か他にサポートできることがあれば、教えてくださいね!


コメント