公式の補足

SRCでは敵ターンに、
・地形効果による回復など
・ステータス異常が切れているか
などの判定をした後、各敵ユニットを一体ずつ動かしていきます。
これは単純にFor文を使用しています。

For i = 1 To ユニット総数
 ユニットごとの処理
Next

この、ユニット総数は次のステージに行くかFreeMemoryコマンドを実行されるまで『減りません』
ので、普段はこの処理でなんら問題ないわけです。
ですが、例えばユニット総数が3のまま処理を始めて実は2体に減っていたらどうなるでしょうか。
3体目のユニットはいません。VB的にはNothingと表現します。
実行エラー91というのは「そんなやついないよ?」という状態をしめすエラーです。
つまりそういうことなので、味方ターン以外でユニットの数を減らしてはいけないのです。


補足の補足
なお、ユニットを減らすとか増やすとか簡単に書いていますが、
一度作られた非味方ユニットは次ステージに行くかFreeMemoryコマンドを実行されるまでなくなりません。
破壊や撤退した状態で残っています。
例えば、敵ユニットを100体作って倒させたら、100体の破壊されたユニットが残っています。
つまり、ユニット総数はマップ上のユニット数とは一致せず、100体作ったら破壊されようが撤退しようが100になります。