VB で配列

たとえば、

Option Explicit

Public Sub Foo(ByRef x() As String)
    ReDim x(3) ' ここでエラーになる。
End Sub

Private Sub Command1_Click()
    Dim a(1) As String
    Call Foo(a)
    Debug.Print "a = " & UBound(a)
End Sub

とすると

実行時エラー '10':

この配列は固定されているか、または一時的にロックされています。

というエラーになる。

Option Explicit

Public Sub Foo(ByRef x() As String)
    ReDim x(3)
End Sub

Private Sub Command1_Click()
    ReDim a(1) As String
    Call Foo(a)
    Debug.Print "a = " & UBound(a)
End Sub

なら大丈夫。