追記

先日に言っていた、参照している配列変数を動的に変化させていく、というのを実装してみました。
参照するであろう要素の最大数はわかっているんだから、最初からその最大数回だけループするようにしておけばOKだったんですね。(今回の場合は、出撃している味方ユニットの数が最大値)
後は、ループの中で順番に要素を格納していけば、格納した値を次のループから順番に参照していってくれます。
ソースも大分すっきりしたので、だんごチェック関数はこれで完成ですかね。
ついでに、この関数を作ってるときも思ったんですが、If文内のコマンドが一つのときは、以下のような書式を使えるようにして欲しかったり。

If 条件式 command

まあ、わざわざEndIf書くのがメンドイだけなんですが。
以下ソース。

マップコマンド だんごチェック2関数起動:
Call だんごチェック2
Exit

だんごチェック2:
Local Select_UnitID
Local 出撃味方数
Local Chain_UnitNum = 0
Local チェック済
Local i j k
Local Chain_Unit

ForEach 味方 出撃
	Select_UnitID = 対象ユニットID
	Incr 出撃味方数
Next

Chain_Unit[Chain_UnitNum] = Select_UnitID
Set チェック済[Select_UnitID]
Incr Chain_UnitNum

For k = 0 to 出撃味方数
  If Chain_Unit[k] = "" Then
    Break
  Endif
  For i = 1 to 2
    For j = 1 to 2
      Select_UnitID = Info(マップ,(X(Chain_Unit[k]) + i - j),(Y(Chain_Unit[k]) + 3 - i - j),ユニットID)
      If (チェック済[Select_UnitID] = 0) And (Party(Select_UnitID) = "味方") Then
        Set チェック済[Select_UnitID]
        Chain_Unit[Chain_UnitNum] = Select_UnitID
        Incr Chain_UnitNum
      Endif
    Next
  Next
Next

Talk システム
全出撃ユニット$(出撃味方数)の内、$(Chain_UnitNum)機がだんご状態にあります
End

Return