■ 最新の投稿

VBA配列を一瞬で生成!Application.Evaluate 活用術~配列に通し番号を詰めるならROW関数が最速だった!

Excel VBA で「配列に一気に値を詰めたい」「ワークシート関数をVBAから呼びたい」と思ったことはありませんか?
そんなとき便利なのが

Application.Evaluate

です!

文字列で数式を指定するだけで、VBA配列として結果を受け取れます。ループ不要で高速なのも魅力です。

Sub Sample()

    Dim arr As Variant
    arr = Application.Evaluate("ROW(1:5)")
    
    ' 配列の中身を見てみる
    Dim i As Integer
    For i = LBound(arr, 1) To UBound(arr, 1)
        Debug.Print arr(i, 1)
    Next i

End Sub

この例では、{1;2;3;4;5} という縦ベクトルの配列がそのまま arr に入ります。
つまり 「シートに書いた式をVBA配列に変換」 できるイメージです。

Application.Evaluate は 、シートの数式をそのままVBA配列に変換する橋渡し」役です。

VBA単独で頑張るのも良いですが、Excelの“武器”である関数群を取り込めば、もっと簡単に速く書けるようになります。


Comments

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です