You don't need any variable at all, let alone any declaration:

Function BSMValue(S, K, r, q, T, sigma, i As Boolean)
    BSMValue = -S * Exp(-q * T) * Application.NormDist(i * (Log(S / K) + (r - q - 0.5 * sigma ^ 2) * T) / (sigma * Sqr(T))) + K * Exp(-r * T) * Application.NormDist(i * (Log(S / K) + (r - q - 0.5 * sigma ^ 2) * T) / (sigma * Sqr(T)))
End Function
NB a boolean is true or false; it doesn't convert automatically to -1 or 0