3 返信 最新の回答 日時: Aug 18, 2005 7:24 AM ユーザー:(流星ちゃん)

    データ書き出し機能(自作)が作りたいのですが…

    Level 1
      お世話になります。
      InDesignCS1(3.01J)+VB6.0で開発しています。

       作りたい機能は、「テキストフレームにカーソルを立てて、データ書き出しでテキストを書き出す」機能なんですが、インラインフレームに含まれるテキストも同時にExportしたいんです。
       標準の機能ではインラインフレームのテキストは抜け落ちてしまいますよね。
       いろいろ試行錯誤しているのですが、どうもうまくいかないので、書き込みにきました。ソースとかは希望しないので(ソース頂けるなら嬉しいのですが…)、アドバイスだけでも、レスお願いでき たらと思います。

      悩んでいる所
      ・インラインフレームがネストしている場合、文字列としてChrW(&hFFFC)で管理されています。この辺の管理はどのように行えば宜しいでしょうか?またGroupやTableの中にも ネストしている場合には、処理方法が煩雑になっていまうので、効率の良い管理方法を探しています。

      お知恵をお貸し下さい。
      よろしくお願いいたします。
        • 1. Re: データ書き出し機能(自作)が作りたいのですが…
          Level 1
          Character, Text, TextFrame, TextColumnなどのオブジェクトに、TextFramesやTextColumnsなどの子オブジェクトコレクションがありますよね。そこら辺を掘り下げてみてはいかがでしょう。
          (多分Text.Exportで書き出されるのは、Charactersコレクションにてあらわされる文字列だけなのではないかと思います。)
          • 2. Re: データ書き出し機能(自作)が作りたいのですが…
            Level 1
            テキストフレームだけなら以下の方法で無限の入れ子に対応できそうです。(5段階までテストしました)
            Public outputtxt As String
            Dim app As InDesign.Application
            Dim doc As InDesign.Document
            Dim txf As InDesign.TextFrame
            Set app = CreateObject("InDesign.Application.CS")
            Set doc = app.Open("e:¥test¥test.indd")
            Set txf = doc.TextFrames(1)

            ireko_sub txf
            '--------------サブルーチン
            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
            このあとにoutputtxtをテキストファイルに落として下さい
            • 3. Re: データ書き出し機能(自作)が作りたいのですが…
              Level 1
              例動問答さん、お〜まちさん、レスありがとうございます。
              アドバイス頂いた所などのアクセス方法の効率化とGroup内のアイテムも拾い出すように今、ソースを変更しています。
              あとIdSpecialCharacterクラスで定義されている文字のコンバート機能もソースに盛り込んでいる最中です。
              完成した暁にはお礼に書き込みに参ります。
              とりいそぎ経過報告まで(^^