コモノExtendScript100本ノック

超初心者のDTPオペレーターが週にひとつスクリプトを書くブログ

037.【ID】アンカー付きオブジェクトの設定を揃える

書いたコード

var doc = app.activeDocument;
var sels = doc.selection;
var refSel = sels[0];
var refPref = refSel.anchoredObjectSettings.properties;
var stry = refSel.parent.parentStory;
stry.pageItems.everyItem().anchoredObjectSettings.properties=refPref;
// ついでにテキストの回り込み
var refPref2 = refSel.textWrapPreferences.properties;
stry.pageItems.everyItem().textWrapPreferences.properties=refPref2;
// ついでに縦組み中で回転値を0に
//~ stry.pageItems.everyItem().absoluteRotationAngle=0;
stry.pageItems.everyItem().absoluteRotationAngle=90;

メモ

分かったこと

当初の目論見では、

var refPref=selections[0].anchoredObjectSettings;
// 略
stry.pageItems[i].anchoredObjectSettings=refPref;

のようにするつもりだった。
が、anchoredObjectSettingsは読み取り専用。
anchoredObjectSettingsの全ての設定を含んだプロパティとしてpropertiesがあり、これは書き換え可能。
このpropertiesというのは色んなオブジェクトが持ってる。
なにかまとめて設定したいときはこれを使えばよさそう。

分からなかったこと

回転値の考え方。
縦組み中ではabsoluteRotationAngle=90すると回転値が0になる。

積み残し

例外処理

  • オブジェクトを選択していなかったら

  • 選択オブジェクトがアンカー付きオブジェクトでなかったら

参考