13
フォルダを自動化する

一日に何回、フォルダを開いたり閉じたり、ファイルをフォルダウィンドウにドラッグしたり、デスクトップ上のウィンドウを移動したりサイズを変更したりしていますか?考えてみてください。こうした日常的な作業を実行するたびに、Mac OS 8.5で導入されたフォルダアクション機能を活用して時間を節約できる可能性があります。

フォルダアクションを使うと、特定のAppleScriptをフォルダに関連付け、フォルダを開いたり、閉じたり、移動したりした際にタスクを実行するように設定できます。例えば、指定した場所でフォルダを開いたり、サブフォルダを閉じて後始末をしたりと、スマートなフォルダを作成できると想像してみてください。AppleScriptの達人なら、この機能を存分に活用できるでしょうが、プログラミング言語の知識がなくても、このトリックを思いつくことができます。

最初のコツは、Mac のフォルダアクション機能を見つけることです。Finder にはメニューコマンドが 1 つも見つかりませんし、Apple のスクリプトエディタにも、フォルダにスクリプトを関連付けることができることを示すものは何もありません。Apple が初心者向けに提供している 10 個のサンプルスクリプトでさえ、システムフォルダの 2 階層下のフォルダに隠れています。ここでは、フォルダアクションを実際に動作させるためのコツをいくつか紹介するとともに、Mac で実行できるクールな機能をいくつか紹介します。ここで説明するコマンドのほとんどは、スクリプトエディタに内蔵されている記録機能を使用して、Finder でのアクションを記録するだけでスクリプトを作成できます (Secrets、1999 年 11 月号を参照)。

彼らを結びつける

フォルダアクションを作成するには、アクションを関連付けたいフォルダ(またはディスクアイコン)をControlキーを押しながらクリックします。表示されるコンテクストメニューの一番下に、「フォルダアクションを関連付ける」というコマンドがあります。このコマンドを選択し、使用するAppleScriptを選択します。スクリプトを選択すると、コンテクストポップアップメニューが表示され、フォルダアクションの編集と削除を行うコマンドが表示されます(「フォルダアクションの検索」を参照)。スクリプトを関連付けると、フォルダアイコンの左下隅に小さなAppleScriptバッジが表示されます。

ただし、すべてのAppleScriptがフォルダアクションとして使用できるわけではありません。フォルダアクションは、スクリプトエディタからコンパイル済みスクリプトとして保存されたスクリプトでのみ機能し、アプリケーションとして保存されたスクリプトでは機能しません。スクリプトをアプリケーションとして保存した場合は、スクリプトエディタで開き、「名前を付けて保存」ダイアログボックスの「種類」ポップアップメニューからコンパイル済みスクリプト形式を選択して、コンパイル済みスクリプト形式で再保存してください。

さらに、「フォルダアクションを添付」コマンドを使ってAppleScriptをコンパイル済みスクリプトとして保存する場合、スクリプトが特定のアクション固有のコマンドで始まり、終わりに書かれていないと動作しません(「マジックワード」を参照)。必要なスクリプト自体はそれほど複雑ではありませんが、これらの短いコードスニペットはフォルダアクションの動作に不可欠です。以下の例では、必要なマジックワードを示しています。

最後に、フォルダアクションは、添付したフォルダが開いている場合にのみ実行されます。つまり、閉じたフォルダにファイルをドロップしても、フォルダアクションは実行されません。

施錠可能な窓の位置

慎重に整理した画面上のワークスペースを他のユーザーが変更するのが嫌なら、次の便利なトリックがあります。誰かが移動しようとしたときに、常に希望どおりのサイズと位置で元の位置に戻るフォルダー ウィンドウを作成します。

まず、制御したいウィンドウの位置とサイズを指定するAppleScriptを記録します。そのウィンドウを開き、スクリプトエディタを起動し、「記録」ボタンをクリックします。記録中にウィンドウの位置とサイズを調整します。完了したら、「停止」ボタンをクリックします。結果として得られるスクリプトは以下のようになります。

	アプリケーション「Finder」を起動し、起動ディスクのフォルダ「Your Folder」のコンテナウィンドウの位置を{405, 105}に設定し、起動ディスクのフォルダ「Your Folder」のコンテナウィンドウのサイズを{409, 279}に設定して終了する	

これをフォルダアクションに変更するには、スクリプトの最初と最後に次の行を追加します。次のようになります。

	on フォルダウィンドウを移動します。this_folder を元の境界から移動します。tell application "Finder" activate 起動ディスクのフォルダ "Your Folder" のコンテナウィンドウの位置を {405, 105} に設定します。起動ディスクのフォルダ "Your Folder" のコンテナウィンドウのサイズを {409, 279} に設定します。end tell end フォルダウィンドウの移動を終了します。	
フォルダアクションの検索:   フォルダをControlキーを押しながらクリックすると、フォルダアクションスクリプトの添付、削除、編集に必要なすべてのコマンドが表示されます。フォルダアイコンに小さなAppleScriptバッジが表示されています。これは、フォルダにスクリプトが添付されていることを示しています。

コードの最初と最後の行は、誰かがウィンドウを移動またはサイズ変更しようとした際に、囲まれたタスクを実行します。このコードをコンパイル済みのスクリプトとして保存し、前述の手順でフォルダにアタッチします。これで、誰かがそのフォルダのウィンドウを移動しようとした際に、即座に設定した位置に戻るようになります。

よりスマートなウィンドウ

同様に、指定した通りに常に開くスマートフォルダを作成することもできます。例えば、画面の左側に常に開き、アイテムが日付順に並べられたプロジェクトフォルダを作成したいとします。ここでも、まずスクリプトエディタでスクリプトを記録します。「記録」をクリックし、ウィンドウを開いて任意の場所に配置し、リストビューを好みに合わせて設定します。スクリプトはすべての操作を記録します。記録が完了したら、「停止」をクリックします。

このスクリプトをフォルダー アクションに変換するには、記録されたスクリプトの上部と下部に 2 行追加します。

	フォルダ this_folder を開くと、アプリケーション "Finder" がアクティブになり、起動ディスクのフォルダ "Projects" のコンテナウィンドウのサイズが {293, 275} に設定されます。起動ディスクのフォルダ "Projects" のコンテナウィンドウの位置が {12, 478} に設定されます。end tell フォルダを開くのを終了します。	

2つのフォルダを開くコマンドは、ユーザーがフォルダを開くたびにこのスクリプトを実行するようにMacに指示します。これにより、フォルダは常に同じ場所に同じ設定で開かれることが保証されます。

魔法の言葉
フォルダアクションスクリプトは、スクリプトをトリガーする特定のアクションを指定するコマンドで始まり、終わる必要があります。ここでは、フォルダアクションに対応したスクリプトを作成するための5つのコマンドを紹介します。スクリプト作成ではよくあることですが、これらのコマンドをスクリプトに含める際は、正確な表現と構文が重要です。
フォルダーアクションを作成するには、次の操作を実行します。 このコマンドでスクリプトを開始します: このコマンドでスクリプトを終了します:
フォルダを開く フォルダ this_folder を開くと オープニングフォルダの終了
フォルダを閉じる this_folderのフォルダウィンドウを閉じるとき フォルダウィンドウを閉じる
フォルダにアイテムを追加する this_folderにフォルダアイテムを追加すると フォルダアイテムの追加を終了
フォルダからアイテムを削除する this_folder からフォルダ項目を削除すると フォルダアイテムの削除を終了
開いているフォルダウィンドウの移動またはサイズ変更 this_folderのフォルダウィンドウをoriginal_boundsから移動したとき フォルダウィンドウの移動を終了

フォルダアクションについてさらに詳しく知りたい場合は、Apple がシステムフォルダ内の Scripts フォルダに保存しているサンプルスクリプトを調べてみてください。(ちなみに、これらのスクリプトをシステムフォルダに保存する特別な理由はありません。保存したフォルダアクションスクリプトは、システム上の任意の便利な場所に配置できます。) これらのサンプルはそれほど魅力的ではないかもしれませんが、より洗練されたフォルダアクションを開発するための優れたモデルとなります。

1991 年以来 Macworld のライターとして活躍する JOSEPH SCHORR 氏は、AppleScript をいじくり回すことを楽しんでいますが、根っからのコード作成能力に著しく欠けるジャーナリストであることを真っ先に認めています。

2000年7月 号 103ページ