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

配列のエラー

配列数を別の関数で再定義しようとすると
"この配列は固定されているか、または一時的にロックされています"
というメッセージで落ちる
原因は2つ考えられる

  1. Withを閉じていない
  2. 初めから固定配列で宣言している
Withを閉じていない
For i = 0 To UBound(employees)
  With employees(i)
    If .age < 20 Then
      Exit Sub
    End If
  End With
Next

Withを終了せずにExit Sub(Function)によって終了するとロックされたままで終了するので
必ずWithは閉じてから終了させること

初めから固定配列で宣言している
Dim employees(0) As typEmployee
↓
ReDim Preserve employees(UBound(employees) + 1)

この場合エラーが発生する
対策は宣言と配列数の設定を別にすること

Dim employees() As typEmployee
ReDim employees(0)ReDim Preserve employees(UBound(employees) + 1)