Btw.:
Dynamic Arrays can certainly be passed byref to a function/sub to be dimensioned there.
Code:
Dim arr$()

Private Sub DimArray(AnArray() As String)
  Dim x%, y%
  x = 3
  y = 7 * 5
  ReDim AnArray(x, y)
End Sub

Private Sub Command1_Click()
 DimArray arr
End Sub
I think that should completely cover your problem, jwspring.

Oh, not to forget: ReDim Preserve allows to increase the array elements while keeping the existing content. Only I think you cannot change the number of dimensions anymore.