Alternatively to using .Product() or .SumProduct() you an write your own functions to do algebra on arrays.
Put the following in a module
Public Function FactorArray(ByVal factor As Double, ByRef a() As Variant) As Variant()
Dim i_1 As Long, i_2 As Long, i As Long
i_1 = LBound(a, 1)
i_2 = UBound(a, 2)
Dim result() As Variant
ReDim result(i_1 To i_2)
For i = i_1 To i_2
result(i) = factor * a(i)
Next i
FactorArray = result
End Function
Public Function AddArrays(ByRef a() As Variant, ByRef b() As Variant) As Variant()
Dim i_1 As Long, i_2 As Long, i As Long
Dim j_1 As Long, j_2 As Long, n As Long
i_1 = LBound(a, 1)
i_2 = UBound(a, 2)
j_1 = LBound(b, 1)
j_2 = UBound(b, 2)
n = WorksheetFunction.Min(i_2 - i_1 + 1, j_2 - j_1 + 1)
Dim result() As Variant
ReDim result(0 To n-1)
For i = 0 To n-1
result(i) = a(i + i_1) + b(i + i_2)
Next i
AddArrays = result
End Function
Public Function SubArrays(ByRef a() As Variant, ByRef b() As Variant) As Variant()
SubArrays = AddArrays(a, FactorArray(-1, b))
End Function
Public Function DivArray(ByRef a() As Variant, ByVal divisor As Double) As Variant()
DivArray = FactorArray(1 / divisor, a)
End Function
And then use it as
Dim arr as Variant, res as Variant
arr = Array(1,2,3,4)
res = FactorArray(X, arr)
WorksheetFunction.Sum(res)
Of course for your specific example you could factor out X and just do a scalar multiplication.
Dim arr as Variant, res as Variant
arr = Array(1,2,3,4)
res = X*WorksheetFunction.Sum(arr)