2

テーブルの最初の行の高さとインセットを一方向に設定し、その後のすべての行を別の値のセットに設定しようとしています。

実行すると、JavaScript エラー メッセージが表示されます。

Error Number:45
Error String: Object is invalid

Engine: main
File: C:\...
Line: 49
Source: app.activeDocument.stories.everyItem().tables.everyItem().rows[x].height = ".12 in";

ここからどこへ行くべきかわからない?ここに私の現在のスクリプトのペーストビンがありますhttp://pastebin.com/iUXgPZSM

4

1 に答える 1

2

メソッドは、everyItem()すべてのコンテキストで常に機能するとは限りません。この場合、属性を設定しているため機能しません。height = ".12 in". 最初に使用して要素を取得getElements()し、次にそれらをループすると、機能します。

また、行の高さをテキスト サイズよりも小さくすることはできません。InDesign ではそれができません。私が提供する例では、デフォルトのテキストサイズよりも小さいように見えるため1 in、使用しました。.12 in

最後に、あなたのペーストビン スクリプトを確認しましたが、関数のチェーンの代わりに変数を使用することで、スクリプトを少しクリーンアップできる可能性があります。より多くの「垂直スペース」を占める可能性がありますが、最終的には他の人にとって読みやすくなります。

var doc = app.activeDocument;

var everyStory = doc.stories.everyItem();
var everyTable = everyStory.tables.everyItem();
var allRows = everyTable.rows.everyItem().getElements();

for (var i=1, l=allRows.length; i < l; i++) {
   var row = allRows[i];
   row.height = "1 in";
};
于 2012-08-31T13:52:36.990 に答える