5 返信 最新の回答 日時: Jul 24, 2007 9:14 AM ユーザー:(motion)

    教えて下さい

    Level 1
      var myPageName = app.activeWindow.activePage.name;<br />var myDocument = app.activeDocument;<br /><br />for (i=0; i<myDocument.pages.length; i++);<br />{<br />var myPage = app.activeDocument.pages[i];<br /><br />●for (count=0; count<myPage.textFrames.length; count++);<br />{<br />myPage.textFrames[count].select(SelectionOptions.addTo);<br />}<br />〜〜〜〜〜〜〜〜〜以下略<br /><br />というスクリプトを書いているのですが、●の行で【オブジェクトが無効です】のエラーになります。<br />書き方がおかしいのだと思うのですがわかりません。どなかた分かる方ご指摘頂けないでしょうか。<br />宜しくお願い致します。<br />インデザインCS3です。
        • 1. Re: 教えて下さい
          seuzo-oJiFme Level 1
          ブロックの前後にはsyntaxの終わりを示すセミコロンは不要です。<br />また、countは予約語っぽいので、できれば避けた方がよろしいかと思います。<br /><br />var myPageName = app.activeWindow.activePage.name; <br />var myDocument = app.activeDocument; <br /><br />for (i=0; i<myDocument.pages.length; i++) {<br /> var myPage = app.activeDocument.pages[i]; <br /><br />for (ii=0; count<myPage.textFrames.length; ii++) {<br /> myPage.textFrames[ii].select(SelectionOptions.addTo);<br />  }<br />  }<br /><br />これでmotionさんのおっしゃるエラーはなくなりますが、スプレッドをまたがってページオブジェクトを選択できませんので、構造的にエラーになります。<br />SelectionOptions.addToを取れば、逐次処理になると思います。
          • 2. Re: 教えて下さい
            Level 1
            市川せうぞーさん
            早速の的確なご指導ありがとうございます!
            実は、SelectionOptions.addToをした後に、そのページの選んでいるテキストフレームのテキストをひとつのテキストファイルに書き出すという処理をページ毎逐次処理してい きたいのです。であれば、テキストファイルに書き出す処理を終えた後一度未選択の状態にすれば良いのでしょうか?
            選択しているフレームを未選択にするほうほうはありますでしょうか?
            • 3. Re: 教えて下さい
              seuzo-oJiFme Level 1
              別にselectしなくても
              myPage.textFrames[ii].contents
              で該当のtextFrameの内容をgetできます。
              ということではなくて?
              • 4. Re: 教えて下さい
                Level 1
                せうぞーさん
                トピ主のmotionさんは、この前のトピから継続してスクリプトを作っているので、
                そちらも見て貰えると流れが分かるかと思います。
                特定のページのTextFrameをつなげて、ページ単位でプレーンテキストに落とすのが目的のようです。
                この場合はPageコレクション配下のTextFramesにアクセスして、個数分ループでContentsを抜き出せば、出来ると思います。
                その次の目的だと、ページ指定による抜き出しへと移行するので、またScriptの内容が大きく変わりますんで、大変だとは思うんですが…(^^;
                • 5. Re: 教えて下さい
                  Level 1
                  せうぞーさん。流星さん。ご教示ありがとうございます。

                  とりあえず、全てのページにたして各ページにあるテキストフレームをページ毎にページ番号.txtと書き出すことはできました。

                  初歩的な質問に、いろいろ教えて下さいまして、ありがとうございました。Scriptの便利さが分かりました。もっと勉強したいと思います。