

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の“武器”である関数群を取り込めば、もっと簡単に速く書けるようになります。



コメントを残す