プロが教えるわが家の防犯対策術!

はじめまして。
定期的に数十のインデザインファイルを開き、各ファイルで使った画像を片っ端から手作業で削除する作業を行う係りが自分に回ってきてしまいました。

日頃IllustratorとPhotoshopを多用しているので、「こんなのマクロでしょ」と思いきや、インデには何故かマクロ機能がなく、代わりにスクリプトで何とかできる「かも」ということが分かりました。

やりたいことは以下の通りなのですが、簡単にできるものでしょうか?
1.特定のフォルダ内にある全インデファイルを開く
2.全てのファイルで使われている画像データを削除
3.全ファイルを上書き保存
osはwindowsなのでVBで対応すべく書籍を買い込み学習を開始しました。
どなたかヒントをいただければ幸いです。
それにしてもアドビさん、なぜインデにはマクロ機能つけてくれなかったの(T . T)

A 回答 (2件)

マクロというかスクリプトというか、


結局の所、自動処理ですから、
呼び方が違うだけだと思うです。


>やりたいことは以下の通りなのですが、簡単にできるものでしょうか?
簡単です。

>1.特定のフォルダ内にある全インデファイルを開く

Set MyInDesign = CreateObject("InDesign.Application.CS4_J")
Set MyDoc = MyInDesign.open("C:\test.indd")

これでCドライブのtest.inddファイルが開きます。
フォルダ内のinddファイルをDIR文などで取得して、
インデザインにopenさせればOKでしょう。

>2.全てのファイルで使われている画像データを削除

先程のMyDocに画像が配置されていれば、
msgbox MyDoc.Links.count
と書けば、配置されている画像の個数が取得できます。

for N = MyDoc.Links.count to 1 step -1
MyDoc.Links(N).parent.delete
next N

と、逆順にループさせて、削除させれば良いでしょう。
parent=親という意味なので、画像の入っている枠ごと
削除することになります。

>3.全ファイルを上書き保存

SVPT = "C:\testtest.indd"
MyDoc.Save SVPT

これでファイル名を指定して保存できます。
    • good
    • 0
この回答へのお礼

素晴らしい回答をありがとうございます。さっそく試させていただきます。お答えのようなスクリプトが書けるようになると理想的ですが、生粋のDTPオペレーターに言語まで要求するのかと思うと、インデザインの要求水準って高いですね。頑張らないと!
ありがとうございましたm(_ _)m

お礼日時:2013/08/10 01:42

Adobeのアプリは『JavaScript』を使用し自動化する事が出来ます。


但し『マクロ』として存在している訳で無く『一から』作成する必要が
有ります。

http://www.openspc2.org/book/InDesignCS6/

ここではライブラリを提供してます。

Macでは『AppleScript』で簡単に動作を記録して作業出来るアプリが有ります
    • good
    • 0
この回答へのお礼

ありがとうございました。
IllustratorやPhotoshopにはアクション機能がついていて、質問ではそれをマクロと書いてしまいました。調べたところ、どうやらこれらのアクション機能はバッチ処理の類に入るそうです。私がしたいことはこの機能で十分な気がしたのでボヤいてしまいました。ご回答、参考にさせていただきます。

お礼日時:2013/08/10 01:37

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!