DTP駆け込み寺

No.11108へ返信

記事投稿フォーム
補助
送信

[ 返信 ]

Re^3: 多重グループ化されたアイテムに対してスクリプ処理

子、子の子、あるいは、親、親の親、と順に辿っていく場合には再起処理を使う必要がありますが、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)