子、子の子、あるいは、親、親の親、と順に辿っていく場合には再起処理を使う必要がありますが、allPageItemsで自分より下のPageItemすべて(子だけではなく孫、ひ孫など)を拾えますので、再起処理にする意味はないと思いますよ。
allPageItemsのところをpageItems(そのオブジェクトの子のpageItemのみ)に変えて、順に再帰呼び出しで処理することも出来なくはないでしょうが、煩雑になるだけで意味がないです。
再起処理する方を考えている仮定で、[11102]で挙げたスクリプトの穴が見つかってしまいました。選択されているオブジェクト自身の文字色が変えれないですね。以下のように修正します。(相変わらず、表組のセル内の文字色は考慮の外ですが)
var sel = app.selection;
for (var i=0; i<sel.length;i++){
try {
sel[i].texts[0].fillColor = "Black";
} catch(e){}
var pItems = sel[i].allPageItems;
for (var j=0; j<pItems.length; j++){
try {
pItems[j].texts[0].fillColor = "Black";
} catch(e){}
}
}
[11108] ななし (2010/12/10 Fri 14:23)