DTP

Apple ScriptでDTP制作の効率UP

Part1 Apple Scriptを使ってみよう

2019.03.01

カタログ制作を効率よく進めるためには、使用する素材の管理は重要です。また、単純な繰り返し作業は自動化する事で、作業負荷を軽減していく事ができます。実現する方法は様々ですが、その一例としてAppleScriptの活用を紹介して行きたいと思います。

AppleScript

Mac OSに標準搭載されたスクリプト言語です。
特別なソフトウェアのインストールは不要で、すぐに利用する事ができます。

OS操作(Finder、Shellコマンドなど)や、AppleScript対応アプリケーションの操作をスクリプトに記述する事ができ、繰り返し作業の自動化や、文字や画像の一括処理など、様々な作業の効率化が実現できます。
AppleScript対応アプリケーションは数多く、DTP制作で代表的なものでは Adobe InDesign, Adobe Illustrator, Adobe PhotoShop, Microsoft Excel, Microsoft Word, FileMaker Proなどがあります。

※掲載しているスクリプトは、Mac OS High Sierra(Version 10.13.6)の環境で作成しています。ご利用のOSバージョンによっては正しく動作しない場合もありますので、あらかじめご了承ください。

スクリプトの記述

とにかくまずは始めてみましょう。
ハードディスク内のフォルダ「アプケーション」→「ユーティリティ」を開きます。
アプリケーション「スクリプトエディタ」を起動します。
スクリプトエディタ
ファイル選択ダイアログが表示されたら「新規書類」をクリックします。
何も書かれていないスクリプト編集画面が表示されますので、以下のスクリプトを記述してみてください。

on run
 tell application "Finder"
  activate
  set DateAndTime to (current date) as string
  display dialog DateAndTime
 end tell
end run

スクリプトエディタ
上記の画面の状態で、コンパイルボタンを押してください。
テキストがインデントされ、色分けされた状態になります。記述内容にエラーがある場合はこの時にエラー内容が表示されます。エラーがなければ実行可能な状態です。

スクリプトの実行

それでは実行ボタンを押してください。
現在の日付と時刻がダイアログに表示されたと思います。

内容解説

このスクリプトについて、1行ずつ解説していきます。

1行目:on run
作成したスクリプトを実行するきっかけを定義している行で、これを「ハンドラ」を言います。
ハンドラは「on」または「to」で定義します。この行は「to run」でも同じように動作します。
runは、実行ボタンが押された時になります。主なハンドラとして、以下のものがあります。

on run ・・・スクリプト実行時
on open ・・・ファイルやフォルダをドラッグ&ドロップした時
on idle ・・・何もしていない時
on quit ・・・アプリケーション終了時

2行目:tell application "Finder"
スクリプトの命令を何に対して送るかを定義しています。6行目の「end tell」までの命令を、アプリケーション「Finder」に対して送るという意味です。

3行目:activate
これは命令文の1つで、指定したオブジェクトをアクティブ状態にします。
この場合、Finderがアクティブになります。アクティブ状態にしないで実行すると、ダイアログが他のウインドウの下に隠れてしまうため、この命令を記述しています。

4行目:set DateAndTime to (current date) as string
ここでは変数を定義しています。変数に値を入れる場合はsetを、値を取り出す場合はgetを使います。
この場合、DateAndTimeという変数に現在の日付と時刻を入れています。
変数名は任意の文字列を指定できますが、AppleScriptの命令文やコマンドなど、定義済みの文字列は使用できません。大文字を混ぜるなどして、被りにくい文字列になるように設定すると良いと思います。
current dateは現在の日付と時刻をシステムから取得するコマンドです。取得したデータには型(クラス)があり、current dateの場合「date型」のデータが返されます。これを文字列として扱うために、as stringで文字列型に変換しています。よく使う型としては以下のようなものがあります。

boolean ・・・真偽値(true または false)
integer ・・・整数
real ・・・実数(少数を含む数字)
date ・・・日付と時刻
string ・・・文字列
text ・・・文字列(stringと同じ)

5行目:display dialog DateAndTime
Display dialogは画面にダイアログを表示する命令です。
表示できるのは文字列に限られます。ここで文字列以外のデータを指定するとエラーになります。

6行目:end tell
Finderへの処理を終了する宣言です。
end tellなど、終了の記述は「end」とだけ記述してコンパイルボタンを押すと、自動的に補完されます。

7行目:end run
スクリプトの処理を終了する宣言です。

スクリプトの保存

正常に動作する事が確認できたら、スクリプトを保存します。
以下の4つのファイルフォーマットから選択できます。

スクリプト コンパイル済みのスクリプトをそのまま保存します。
拡張子は「.scpt」で、保存したファイルを開くとスクリプトエディタが起動します。
実行はスクリプトエディタから行います。
スクリプトバンドル 「スクリプト」と同じくコンパイル済みのスクリプトです。
拡張子は「.scptd」で、パッケージ内に付随するファイルを保存できます。
アプリケーション 単独で動作するアプリケーションとして保存します。
拡張子は「.app」で、起動するとスクリプトが実行されます。
これを「アプレット」と呼んでいます。
ファイルやフォルダをドロップして起動する「ドロップレット」もこの方式での保存です。
テキスト コンパイルされていないテキストファイルとして保存します。
作成途中のものや、動作環境が違うMacへの受け渡しに便利な形式です。
拡張子は「.applescript」です。

今回はここまでです。今使用しているMacで手軽に始められるので、是非使ってみてください。
次回からは基本的な処理の書き方や、DTPでの活用例を記載して行きます。


サンプルスクリプトのダウンロード

参考までに、Finder関連のスクリプトサンプルとして「ファイルの拡張子変更」と「ファイル名のリスト作成」を掲載します。

ダウンロードページへ

Written by Kanbayashi

 top