InDesign + vbscript(その2:textFrameの追加とか)
‘———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)ところがポイントですぞ!
...明日に続く!