Skip navigation
okiku3
Currently Being Moderated

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

Aug 11, 2009 3:05 AM

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

 

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

 

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

 
Replies
  • Currently Being Moderated
    Aug 17, 2009 3:26 AM   in reply to okiku3

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

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

     
    |
    Mark as:
  • Currently Being Moderated
    Aug 17, 2009 3:26 AM   in reply to okiku3

    昔々(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

     
    |
    Mark as:

More Like This

  • Retrieving data ...

Bookmarked By (0)

Answers + Points = Status

  • 10 points awarded for Correct Answers
  • 5 points awarded for Helpful Answers
  • 10,000+ points
  • 1,001-10,000 points
  • 501-1,000 points
  • 5-500 points