Skip to main content
Inspiring
July 10, 2026
Answered

Scriptで表の値を置き換える処理が極端に遅い書類がある

  • July 10, 2026
  • 4 replies
  • 42 views

MAC OS 13.7.8 M1/indesign 2024/ExtendScript

表組の価格を置き換えるスクリプトを作成し使用しているのですが、
最近もらったデータの処理だけ異様に遅いです。
多少置き換えるセルが多い所為かと最初は思ったのですが、
試しに以前から使用しているデータより処理するセル数を減らして、構造もほぼ同じに変更しても断然遅いです。

遅い方は処理セル数が54で27秒弱、速い方は処理セル数が74で4秒ちょいです。
何か原因に心当たりがある方いらっしゃいますか?

    Correct answer SGT0001

    JXAで各処理をまとめていて、jsx2の方の時間のみ計測しています。

    ただ今各処理を見直していて別の処理を追加した時にpythonの方で無駄に書き出し情報が重複して増えているというミスが発覚しました。

    ここの問題だと思われます。お騒がせ致しました。😰

    4 replies

    SGT0001Author
    Inspiring
    July 10, 2026

    その辺も試しましたが、変わりない感じですね。

    データをアップできると良いの一番良いのでしょうが。

    もう少し色々検証してみて何かわかったら書き込みます。

    ありがとうございます。

    ajabon grinsmith
    Community Expert
    Community Expert
    July 10, 2026

    一連の処理(jsx1-Python-jsx2)のうち、ネックになっている処理の切り分けは済んでいますか?
    jsx2が遅い、で確定ですか?

    SGT0001AuthorCorrect answer
    Inspiring
    July 10, 2026

    JXAで各処理をまとめていて、jsx2の方の時間のみ計測しています。

    ただ今各処理を見直していて別の処理を追加した時にpythonの方で無駄に書き出し情報が重複して増えているというミスが発覚しました。

    ここの問題だと思われます。お騒がせ致しました。😰

    ajabon grinsmith
    Community Expert
    Community Expert
    July 10, 2026

    もらったデータのほうを疑う流れですかね。

    IDMLも試したんですね。

    試しで、新規ドキュメントに表を含むテキストフレームをペーストして、表スタイル、セルスタイル、段落スタイル、文字スタイルすべて [基本] を適用してみて、変化ありますか?

    SGT0001Author
    Inspiring
    July 10, 2026

    すでに新規ドキュメントにコピペしたもので試していたので

    上記に該当する段落スタイルのみ基本にして、20秒ちょいに短縮されました。

    若干簡略化した表だと19秒弱です。

    簡略した表は価格処理とは関係ない部分なのですが、処理時間が変わるものですね。

    計測時間は最後の価格変更にかかる部分だけの時間です。

    ajabon grinsmith
    Community Expert
    Community Expert
    July 10, 2026

    うーん。あとは、
    ・CPUプレビューや高速表示にして実行
    ・app.scriptPreferences.enableRedraw = false: を処置前に入れてみる(再描画しない設定)
    とか効果あるでしょうか?

    SGT0001Author
    Inspiring
    July 10, 2026

    すみません。
    新規で作成した方の表は情報を減らしていたので、元の表も同じ情報量にした場合は26秒弱でした。
    処理としては、jsxでインデザインの表の内容を読み込みPyhonで処理してjson出力、
    jsxで元の表の価格を入れ替えるという工程です。
    最後の工程はあらかじめ記録してある価格セルの位置の内容を置き換えてるという処理ですが、この工程が異様に遅いのです。
    1セルごとに検索置換しているのが遅い原因かと思い(従来のドキュメントでは特に問題なかったのですが)
    一旦findGrepで検索して、置換のみセル単位でchangeGrepという処理に置き換えてみたのですが特に早くはなりませんでした。

    katayanagi51
    Community Expert
    Community Expert
    July 10, 2026

    確認ですが,速いドキュメントと遅いドキュメントの総頁数,総文字数や当該ストーリーの文字数などは同程度でしょうか。使われている段落スタイルの数量や内容(正規表現スタイルほか)も同程度でしょうか。(思い付きで書いてます。関係ない可能性もあります)

    SGT0001Author
    Inspiring
    July 10, 2026

    表単位で選択して処理しているので、ページ数は関係しておりません。

    段落スタイルはむしろ速いほうに正規表現スタイルなど使用しています。

    試しにidmlで出力してやってみましたが変わらず遅く、スタイルとのリンクも切断してみましたが変わりません。

    同じ構造の表を作って(スタイルなどは割り当てていません)試したら7秒強まで短縮されましたがまだ少し遅めです。