環境:InDesign CC2021
全頁からスクリプトラベル「delete_label」が付いたフレームを削除するスクリプトを作成して動かしたところ、【スクリプトラベル付きテキストフレーム】を削除するのは出来たのですが、【テキストフレーム】がグループ化状態のままになってしまいます。
グループ
【テキストフレーム】+【スクリプトラベル付きテキストフレーム】
↓スクリプト作動後
グループ
【テキストフレーム】 …単体だけどグループの状態!
今のところ問題はない出ていないのですが、バージョンが上がった時に不具合となる可能性があるのでグループ化を解除しようと思っているのですが、この場合だと【テキストフレーム】にもスクリプトラベルを付けて、スクリプトラベルを検索してグループ化解除という一手間が必要でしょうか?
点数が多いだけに新しくスクリプトラベルを追加するのは最終手段としているのですが、もし、グループの子である「delete_label」の親を指定する方法など、他の手段はあるでしょうか。ご教授願います。
main();
function main() {
var count = 0;
var myDoc=app.documents[0];
var allObj=myDoc.allPageItems;
var Dframe="delete_label";
app.doScript(function() {
for (i=allObj.length-1; i>=0; i--){
if (allObj[i].label==Dframe) {
count++;
allObj[i].groups.everyItem().ungroup();
allObj[i].remove();
}else{
continue;
}
}
alert('削除件数は'+count+'件でした。');
}, ScriptLanguage.JAVASCRIPT, null, UndoModes.ENTIRE_SCRIPT);
}
[20900] DTP屋の柴犬 (2022/09/01 Thu 18:13)
追伸として現状の画像を上げておきます。
グループ
【テキストフレーム】+【スクリプトラベル付きテキストフレーム】
↓スクリプト作動後
グループ
【テキストフレーム】 …単体だけどグループの状態!
画像の下にあるのがテキストフレームにテーブルを入れてあるボックスです。このテキストフレーム、右クリックを押すと「グループ化の解除」が選択出来るので表示だけの問題ではなく、データ的にグループの状態だと判断しているようです。
[20901] DTP屋の柴犬 (2022/09/01 Thu 18:17)
グループが残ることの良し悪しは、ケースによるんじゃないですかね。
グループに効果がかかってる場合とか(ないともいいきれない)。
remove()前に親がグループオブジェクトか確認、
グループなら内包pageItemsが2個以下か確認、
真ならグループ解除、みたいなことは避けられない気がします。
[20902] (z-) (2022/09/02 Fri 09:42)
> グループが残ることの良し悪しは、ケースによるんじゃないですかね。
> グループに効果がかかってる場合とか(ないともいいきれない)。
グループの効果が無くなる事を考えていませんでした…
グループにスクリプトラベルが付いていた場合にも消えるんですね
> remove()前に親がグループオブジェクトか確認、
> グループなら内包pageItemsが2個以下か確認、
> 真ならグループ解除、みたいなことは避けられない気がします。
if構文で「constructor.name=="Group"」なども視野に入れたのですが…ここに更に「効果があった場合」「ラベルがあった場合」など追加しないといけない項目が山ほど増えそうなので、とりあえず現状維持の方が万が一がなくて良さそうです
ありがとうございました!
[20903] DTP屋の柴犬 (2022/09/02 Fri 15:41)