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

2018年04月21日

今年に入って手に入れ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のテキストが配置されます。そのうちどこかでデモさせてください。