4 Replies Latest reply: Aug 17, 2009 2:36 AM by okiku3 RSS

    vbsでアンカー枠の位置を特定するには

    okiku3

      CS3(win)のvbsで
       「連結していないテキストフレーム内のテキストを、1つのテキストファイルに書き出す」
      という、スクリプトを作っています。

       

      その際に、テキストフレーム内のアンカー枠内のテキストを
      アンカー枠の外(そのアンカーの箇所)に出してから、
      全体をテキストファイルに書き出したいと思うのですが、
      アンカー枠のぶら下がっている箇所を特定するって、できるのでしょうか・・・

       

      どなたかご存知でしたら、ご教授いただけると助かります。

        • 1. Re: vbsでアンカー枠の位置を特定するには
          bykamo

          当方Mac環境ですので、vbsで具体的にどう書くかはわかりませんが、検索文字列^aでストーリー内を検索し、ヒットした文字(アンカー付きオブジェクトマーカー)のプロパティ:allPa geItems(グループ化されている場合)あるいはtextFrames(要素は一つだけのはず)から辿れば、アンカー付きオブジェクト(インラインフレームを含みます)に辿り着けます。

          位置はヒットしたそのアンカー付きオブジェクトマーカー(クラスはCharacter)のindexです。

          • 2. Re: vbsでアンカー枠の位置を特定するには
            omachi Community Member

            昔々(CS時代)に作ったテストプログラム(VBA)ですが参考になりますか。

            これを実行すると outputtxt という変数にインラインオブジェクト(CS時代の呼称)内のテキストも含んだ文字列を代入します。

            outputtxt をグローバル変数にしておけばよいかと。

            2世代前なのでChrW(&HFFFC)はあやしいです。

             

            Private Sub ireko_main()

                 '入れ子のテスト
                 Set app = CreateObject("InDesign.Application.CS")
                 Set doc = app.Open("e:\test\ireko.indd")
                 Set txf = doc.TextFrames(1)

             

                 ireko_sub txf

             

            End Sub

            Private Sub ireko_sub( txf )
                For i = 1 To txf.Characters.count
                    If txf.Characters(i).Contents = ChrW(&HFFFC) Then
                        ireko_sub txf.Characters(i).TextFrames(1)
                    Else
                        outputtxt = outputtxt & txf.Characters(i).Contents
                    End If
                Next i
            End Sub

            • 3. Re: vbsでアンカー枠の位置を特定するには
              okiku3 Community Member

              bykamo さん

               

              ありがとうございます!

              Character なのですね。 

              vbs、がんばりますっ。

               

              ・・・返信する場所間違えました。。。

              abuse付けちゃいました~~~ <(_ _)><(_ _)><(_ _)>

              英語音痴は、情けないです。

              本当にすいません。

              • 4. Re: vbsでアンカー枠の位置を特定するには
                okiku3 Community Member

                omachi さん

                 

                丁寧にソースまでつけていただき、ありがとうございます!

                Characters なのですね。

                 

                文字の扱いは難しく感じていましたが、

                これでなんとか乗り切れそうです!

                ありがとうございました。

                 

                 

                ・・・返信する場所間違えました。。。

                abuse付けちゃいました~~~ <(_ _)><(_ _)><(_ _)>

                英語音痴は、情けないです。

                本当にすいません。