»

InDesign + vbscript(その2:textFrameの追加とか)

InDesign — enjoji.yasujiro @ 9:40 PM

‘———InDesignの起動
Set myInDesign = CreateObject(”InDesign.Application.CS2_J”)
Set myDoc = myInDesign.ActiveDocument

‘—-textFrameを追加して任意の座標・色・濃淡・透明度等を再設定
set myObj = myDoc.textFrames.add()

myObj.ContentType = 1735553140            ’型:グラフィック
myObj.GeometricBounds=Array(y1, x1 ,y2, x2)    ’座標:top/left/bottom/right
myObj.FillColor = myDoc.Colors.Item(”Black”)     ’色:黒
myObj.FillTint = 20                       ’濃淡:→灰色
myObj.opacity = 50                       ’透明度:50%=半透明
myObj.Label = “Frame1″                    ’スクリプトラベルへの書き込み


なおスクリプトラベルにしるしをつけておくのは、あとでテキストフレームを削除するためです↓

‘———InDesignの起動
Set myInDesign = CreateObject(”InDesign.Application.CS2_J”)
Set myDoc = myInDesign.ActiveDocument

‘——-ラベルに[Frame1]と記述があるフレームのみ全削除 ——
‘ページのループ
For i = 1 to myDoc.pages.Count
    Set myPage = myDoc.pages.item(i)

    ’フレームのループ
    For j = myPage.Rectangles.Count to 1 step -1     ’カウンター:降順
        Set myRectangle = myPage.Rectangles.Item(j)
        b = myRectangle.Label

        ’ラベルの判定 ※真:フレーム削除 / 偽:なにもせず
        if inStr(b,”Frame1″) > 0 then
            myRectangle.delete()
        end if
    Next
Next

上記のようにループを回して全頁の全フレームを巡回してInStr関数でラベルの文字列を取得してラベルに「Frame1」と記述されているか否かを判定すれば任意のフレームのみを一括削除することが可能です。 ※フレームを削除する場合、ループを降順に回す(Step -1)ところがポイントですぞ!

...明日に続く!

0 Comments »

コメントはまだありません。

このコメント欄の RSS フィード TrackBack URI

コメントをどうぞ

This work is licensed under a Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License.
(c) 2009 鎌倉橋日記 | powered by WordPress with Barecity