3 返信 最新の回答 日時: Aug 21, 2006 3:31 PM ユーザー:(流星ちゃん)

    selection中のObject操作について

    Level 1
      ユーザーがテキストフレームを選択後、右クリックで「オブジェクトの属性」-「グラフィック」と操作する処理を、Scriptで同じ事をしたいのですが、
      サイズをVisibleBoundsで得て同じサイズのRectangleを作る方法以外にすでに作成されたテキストフレームを利用する方法はありますでしょうか?
      どうしても思いつかないので、お力をお貸し下さい。
      よろしくお願いいたします。
        • 1. Re: selection中のObject操作について
          Javaスクリプトですが、このような方法ではダメでしょうか?
          if (app.selection.length != 0){
          with(app.selection[0]){
          switch (constructor.name){
          case "TextFrame":
          case "Rectangle":
          try{ contentType = ContentType.graphicType; }
          catch(e){alert("オブジェクトの属性を変更できませんでした。"); }
          break;
          }
          }
          }
          • 2. Re: selection中のObject操作について
            Level 1
            失礼しました。
            このスクリプトはCS2のものですので、CSの場合は上手くいかないかもしれません。
            • 3. Re: selection中のObject操作について
              Level 1
              by鴨さん
              レスありがとうございます。
              一発で設定出来るんですね。変な方法で逃げる所でした。
              当方の環境はCSでした。書き忘れました。

              以下、完成Scriptです。
              大変助かりました。どうもありがとうございました。

              '-----------------------------------------------------------
              ' 選択したTextFrameをRectangleに変換するScript
              ' Special Thanks by鴨さん And InDesign SDK Forums
              ' Written By 流星光輝 ( InDesign Script For Windows )
              '-----------------------------------------------------------
              Dim MyInDesign ' As InDesign.Application
              Set MyInDesign = CreateObject("InDesign.Application.CS")

              'デスクトップから使う場合には下の行のコメントアウトを外して下さい。
              'Const idGraphicType = 1735553140

              With MyInDesign
              If .Selection.Count = 0 Then Exit Sub
              For I = 1 To .Selection.Count
              Select Case TypeName(.Selection(I))
              Case "TextFrame":
              .Selection(I).ContentType = idGraphicType
              Case Else
              '処理しない
              End Select
              Next
              End With
              Set MyInDesign = Nothing