公開日:2017年9月13日
[スクリプト]パネルがいっぱいになってくると整理が面倒になるので、インスタントなものはその都度呼び出して使おう。ということで書きました。Illustratorでいうところの「その他のスクリプト…」です。
[スクリプト]パネルでもローカルでも、フォルダ管理の手間はあまり大差ないですが、どっちで管理するのが楽かな…と天秤にかけた上で。
最初は#includeや#includepathなどを使えばできるんじゃないかと企んだのですが、ダイアログで選択したスクリプトのパスを認識させるのがどうしてもできなくてハマりました…
var fileObj=File.openDialog("ファイルを指定してください","javascript:*.jsx");
if (fileObj){
$.evalFile(decodeURI(fileObj))
}
1.このスクリプトを[スクリプト]パネルで起動できるようにしておきます。キーボードショートカットはIllustratorオマージュで「Ctrl+F12(command+F12)」を。
今回は「外部からスクリプトを読み込んで、スニペットとして書き出す」という操作をします。オブジェクトを選択して、「InDesignでもその他のスクリプト.jsx」を実行。
2.ファイルを選択するダイアログが表示されます。この中から、「SOS.jsx」を選択します。
3.選択したオブジェクトに対し、「2.」で選んだスクリプトが実行されます。
先代MacBook Pro(Early2011)の動作がいよいよ怪しくなってきたので、CC契約しました…InDesignでもインターフェイスくっきり。
var fileObj=File.openDialog("ファイルを指定してください","javascript:*.jsx",true);//最後のtrueでファイルの複数選択を許可
for(var i=0; i < fileObj.length; i++)
{
$.evalFile(decodeURI(fileObj[i]));
}
こちらはダイアログで選択したスクリプトを順に動かすスクリプトです。一応動いてはくれますが、複数のスクリプトを一気に動かす際は#include
や#includepath
を使用したほうが無難です。