この配列は固定されているか、または一時的にロックされています
配列のエラー
配列数を別の関数で再定義しようとすると
"この配列は固定されているか、または一時的にロックされています"
というメッセージで落ちる
原因は2つ考えられる
- Withを閉じていない
- 初めから固定配列で宣言している
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)