Am I correct in my assumption that I can only pass arrays in the form of
variants to a procedure as a parameter.

For example, the following function always works for arrays
Function DoNothing(ByRef ArrIn as variant)
DoNothing = arrIn
End Function

While the following function never seems to work for arrays even if they are
dimensioned as integer arrays.
Function DoNothing(ByRef ArrIn as integer)
DoNothing = arrIn
End Function

Regards,
Wayne C.