Excel 2016 for MacのVBAからInDesignのJavaScriptを実行する(1)

今年に入って手に入れたMacは大活躍しています。元々の目的は単なる動作検証のつもりだったのですが「InDesign JavaScript教室」のキャプチャ作成やコードの検証で大いに役立っています。そんな中指導先の企業が、顧客からくるExcelデータの加工(整形)を教えてくださいというので、Excel 2016 for Macをインストールしました。元々Office 365 Soloを契約していたので追加費用なしです。

そこで色々VBA(Excelマクロ)を調べていくと、AppleScriptを実行することができるんですね(ここに説明があります。前々からできてたみたいですが、こういうものは実際に使う段階にならないとなかなか調べようという気になりません。

AppleScriptを実行できるならInDesignも実行できますね「tell application~」とすればいいから。でもその後もAppleScriptで書き続けるのは辛いです。何せこの間までMacを持ってなかったので。なので、そのままExtendScriptに渡しちゃいましょう「do script~」で行けそうです。

ExtendScriptに行ってしまえばもうこっちのもの。何せ他人に教えようというぐらい自信があります。

ということで終わり! なわけないですね。これでは単なる遊びになってしまう。Excelから実行するというのであれば、何とかしてExcel内のデータ(テキスト)をInDesignに渡さなければなりません。それだけでなく、実行するJSXファイルも指定しないといけません。それができて初めて、タイトル通り「自動操縦」になるわけで。

まあ、できたから書いているんですが。

ただ、いくつかトラップというか、頭をひねらなければならないところがあって、それを書いていくと非常に分量が多くなります。今日のところは、それを使ったデモ画面のイメージでお楽しみください。

こんな風に、どのテキストフレームにどのセルの内容を入れるかというのを設定して実行するので、ある程度汎用的に使えます。これで一番下のボタンをクリックするとInDesignのドキュメントが作成されてExcelのテキストが配置されます。そのうちどこかでデモさせてください。