Scriptを使ってみよう2019.03.01カタログ制作を効率よく進めるためには、使用する素材の管理は重要です。単純な繰り返し作業は自動化する事で、作業負荷を軽減していく事ができます。実現する方法は様々ですが、その一例としてAppleScriptの活用を紹介して行きたいと思います。OSに標準搭載されたスクリプト言語です。特別なソフトウェアのインストールは不要で、すぐに利用する事ができます。OS操作(Finder、Shellコマンドなど)や、AppleScript対応アプリケーションの操作をスクリプトに記述する事ができ、繰り返し作業の自動化や、文字や画像の一括処理など、様々な作業の効率化が実現できます。Proなどがあります。10.13.6)の環境で作成しています。ご利用のOSバージョンによっては正しく動作しない場合もありますので、あらかじめご了承ください。スクリプトの記述とにかくまずは始めてみましょう。ハードディスク内のフォルダ「アプケーション」→「ユーティリティ」を開きます。アプリケーション「スクリプトエディタ」を起動します。ファイル選択ダイアログが表示されたら「新規書類」をクリックします。何も書かれていないスクリプト編集画面が表示されますので、以下のスクリプトを記述してみてください。run上記の画面の状態で、コンパイルボタンを押してください。テキストがインデントされ、色分けされた状態になります。記述内容にエラーがある場合はこの時にエラー内容が表示されます。エラーがなければ実行可能な状態です。スクリプトの実行それでは実行ボタンを押してください。現在の日付と時刻がダイアログに表示されたと思います。内容解説このスクリプトについて、1行ずつ解説していきます。run作成したスクリプトを実行するきっかけを定義している行で、これを「ハンドラ」を言います。ハンドラは「on」または「to」で定義します。run」でも同じように動作します。runは、実行ボタンが押された時になります。主なハンドラとして、以下のものがあります。"Finder"スクリプトの命令を何に対して送るかを定義しています。tell」までの命令を、アプリケーション「Finder」に対して送るという意味です。3行目:activateこれは命令文の1つで、指定したオブジェクトをアクティブ状態にします。この場合、Finderがアクティブになります。アクティブ状態にしないで実行すると、ダイアログが他のウインドウの下に隠れてしまうため、この命令を記述しています。stringここでは変数を定義しています。変数に値を入れる場合はsetを、値を取り出す場合はgetを使います。この場合、DateAndTimeという変数に現在の日付と時刻を入れています。変数名は任意の文字列を指定できますが、AppleScriptの命令文やコマンドなど、定義済みの文字列は使用できません。大文字を混ぜるなどして、被りにくい文字列になるように設定すると良いと思います。dateは現在の日付と時刻をシステムから取得するコマンドです。dateの場合「date型」のデータが返されます。stringで文字列型に変換しています。使う型としては以下のようなものがあります。dialogは画面にダイアログを表示する命令です。表示できるのは文字列に限られます。ここで文字列以外のデータを指定するとエラーになります。tellFinderへの処理を終了する宣言です。tellなど、終了の記述は「end」とだけ記述してコンパイルボタンを押すと、自動的に補完されます。runスクリプトの処理を終了する宣言です。正常に動作する事が確認できたら、スクリプトを保存します。以下の4つのファイルフォーマットから選択できます。コンパイル済みのスクリプトをそのまま保存します。拡張子は「.scpt」で、保存したファイルを開くとスクリプトエディタが起動します。実行はスクリプトエディタから行います。「スクリプト」と同じくコンパイル済みのスクリプトです。拡張子は「.scptd」で、パッケージ内に付随するファイルを保存できます。単独で動作するアプリケーションとして保存します。拡張子は「.app」で、起動するとスクリプトが実行されます。これを「アプレット」と呼んでいます。ファイルやフォルダをドロップして起動する「ドロップレット」もこの方式での保存です。コンパイルされていないテキストファイルとして保存します。作成途中のものや、動作環境が違うMacへの受け渡しに便利な形式です。拡張子は「.applescript」です。今使用しているMacで手軽に始められるので、是非使ってみてください。次回からは基本的な処理の書き方や、DTPでの活用例を記載して行きます。サンプルスクリプトのダウンロード参考までに、Finder関連のスクリプトサンプルとして「ファイルの拡張子変更」と「ファイル名のリスト作成」を掲載します。