92
プログラミングが苦手な人のためのAppleScript

AppleScript が System 7 の初期に導入されたとき、それは夢が実現したように思えました。ついに、普通の人のためのスクリプト言語が登場したのです。平易な英語をベースにした構文を持つ言語で、ソフトウェア エンジニアのスキルを必要とせずに平均的なユーザーが Mac を自動化できる言語です。

そして、初めてAppleScriptに触れました。そして、次のようなコードが書かれたサンプルスクリプトをじっと見つめていました。

	if 	(	 not 	(exists (ファイル PrefFileName	 of 	folder "Documents" of preference folder)))	 then 	set 	|state|	 to 	"New" else	 if 	askOnRun	 then 	display dialog "Continue to watch" & ((FolderToWatch)	 as 	string) buttons {"OK", "New", "Cancel"} default button 1	 set 	|state|	 to the 	button returned	 of the 	result	 else 	set 	|state|	 to 	"OK"	 end if	

プログラマーではない私の脳にとって、これは英語というより、C++ と下手な ee cummings の詩を混ぜ合わせた悪夢のような作品のように見えました。

しかし、スクリプトを作成するのにコードを書く必要がないことにすぐに気づきました。Macintosh に付属するスクリプト作成プログラム「Script Editor」(Apple Extrasフォルダ内のAppleScriptフォルダにあります)を使えば、AppleScript 記録できます。Script Editorの「記録」ボタンをクリックし、AppleScriptの記録機能をサポートするアプリケーション(Mac OS 8.0以降のFinderなど)で操作を実行すると、Script Editorがその操作を記録し、即座にAppleScriptコードに変換します。この機能を使えば、ほとんど、あるいは全く調整を必要としない便利なAppleScriptを作成できます。Macの簡単に記録できるシステムコンポーネントを活用した例をいくつか見てみましょう。

究極のデスクトップクリーンアップ

Finderに組み込まれている「クリーンアップ」コマンドは、デスクトップまたはフォルダ内のアイコンを目に見えないグリッドに沿って配置することで整理しますが、 アイコンの配置場所を制御できません 。AppleScriptを使えば、スマートな「クリーンアップ」コマンドを作成できます。

まず、スクリプトエディタを起動し、スクリプトエディタウィンドウの「記録」ボタンをクリックします。スクリプトエディタを起動したまま(ウィンドウを折りたたんだり、隅にドラッグしたり、背景に隠したりすることもできます)、デスクトップを整理して、思い通りの見た目に整えましょう。デスクトップアイコンを一つずつ、表示したい場所にドラッグします。アイコンが既に目的の場所に配置されている場合でも、少しずらしてから元の位置に戻してください。

コードのクリーンアップ コード を一文字も入力せずに作成したAppleScript全体をご紹介します。このスクリプトを作成するには、スクリプトエディタの記録機能を有効にした状態で、デスクトップ上のアイコンをドラッグするだけです。スクリプトを再生すると、アイコンは記録された位置に自動的に移動します。

スクリプトエディタウィンドウは、Finderで実行したすべての操作を記録し、選択および移動した各項目の最終的な画面座標を取得します(「コードのクリーンアップ」を参照)。完了したら、スクリプトエディタの「停止」ボタンをクリックし、「ファイル」メニューから「保存」を選択します。「保存」ダイアログボックスで、「種類」ポップアップメニューを「アプリケーション」に変更し、「起動画面を表示しない」チェックボックスをオンにして、スクリプトを保存します。

これで、デスクトップ上のすべてのアイコンを希望の場所に正確に再配置できる本格的なAppleScriptが完成しました。アイコンをドラッグして移動させ、スクリプトを実行して瞬時に整頓してみましょう。(デスクトップではなく特定のフォルダを整理する同様のスクリプトを作成することもできますが、このシンプルなスクリプトは常に指定したアイコンを検索するため、今後も表示され続ける項目にのみ使用してください。)

背景スイッチャー

例えば、あなたが「ボンダイ・エクストラダーク」のデスクトップパターンを気に入っているのに、配偶者がカンクンのビーチの写真を背景に作業することを好むとします。2つの背景を自動的に切り替えるAppleScriptを記録することができます。

先ほど説明したように、スクリプトエディタで新しいスクリプトウィンドウを開いてください。「記録」ボタンをクリックし、デスクトップパターンを変更する手順に従います。「外観」コントロールパネルを開き、希望するパターンまたは画像を選択し、「デスクトップの設定」をクリックしてコントロールパネルを閉じます。記録を停止します。

このスクリプトは、記録時にバグが発生しているため、少し修正が必要です。リストからパターンを選択すると、スクリプトエディタが次のようなコード行を記録していることに注目してください。

		背景パターン	を	「3Ñ[caron]¿3Ñ[caron]¿3Ñ」	設定する

引用符で囲まれた文字化けを、Bondi Extra Darkなどの選択したパターンの実際の名前に置き換えます。

		背景パターン	を	「Bondi Extra Dark」	設定する

スクリプトが機能するには、大文字と小文字の区別を含め、パターン名を正確に入力する必要があります。上記の「Ultimate Desktop Cleanup」の説明に従って、スクリプトをアプリケーションとして保存してください。

複数のお気に入りの背景用のスクリプトを作成し、Appleメニューに配置して簡単にアクセスできるようにすることができます。配置後は、Appleメニューから別のスクリプトを選択するだけで背景を切り替えることができます。

ウィンドウズオンデマンド

仕事をこなすために、毎日同じフォルダを開いていることはありませんか? 必要なフォルダを すべて同時に開き 表示されるウィンドウのサイズ、位置、表示オプションをすべて同時に設定できるAppleScriptを1つ作ってみませんか?

スクリプトエディタの記録機能を使えば簡単です。新しいスクリプトを開始し、「記録」をクリックしたら、必要なフォルダを開きます。各ウィンドウの表示形式(アイコンやリストなど)、サイズ、位置を設定します。最後に、不要なウィンドウを閉じて、表示したい項目だけが画面に表示されるようにします。「停止」をクリックしてスクリプトを保存します。完成したスクリプトは複数のフォルダを次々に取得し、必要な場所にウィンドウを開きます。

これらの例から、お気に入りのアプリケーション用のスクリプトを作成する気になった場合は、まず、それらのスクリプトが AppleScript にどの程度対応しているかを確認してください。一部のアクションは、すべてのプログラムで記録できるとは限りません。

もちろん、時間をかけてAppleScriptを実際に学べば、Macを自動化する方法はもっとたくさんあります。スクリプト言語の構文を学ぶ準備ができていなくても、AppleScriptの記録と再生による自動化のアプローチを試してみると、少なくとも一部の作業が少し楽になるかもしれません。

「AppleScriptの声」も参照してください

JOSEPH SCHORR 氏は、自他ともに認める非プログラマーであり、 『Macworld Mac Secrets』 第 5 版 (IDG Books Worldwide、1998 年) の共著者です 。

1999年11月 号 118ページ

AppleScriptの声

AppleScriptは、業務の効率化やワークフローの自動化を実現するだけではありません。会話もできます。AppleScriptを使えば、Macの音声読み上げ機能で使われている素敵な音声をすべて利用できます。SimpleTextの「サウンド」メニューや、スピーチコントロールパネルの「音声」ポップアップメニューから選択できるものと同じ音声です。

スクリプトに音声を追加するにはコードを入力する必要はありますが、非常に簡単です。 「 say 」という単語 に続けて、音声化したいフレーズを引用符で囲んで入力するだけです。例:

「このスクリプトを使えば、間違いなく時間を大幅に節約できますよ!」

音声コントロールパネルのデフォルトの音声以外の音声でフレーズを読み上げたい場合は、フレーズの末尾に 「using」という 単語を追加し 、その後に音声名を引用符で囲んで指定します。例:

「Kathy」を使って「ファイルがコピーされました」と言う

「Zarvox」を使って「良い一日を」と言う

スクリプト内のどこにでも音声を配置できます。音声同士が会話するだけのスクリプトも作成できます(「コードでシェイクスピア」を参照)。AppleScript内で使用される音声のペースとピッチの制御については、スクリプトエディタの「ヘルプ」メニューから「AppleScriptヘルプ」を選択し、「 speech」という単語で検索してください 。

シェイクスピアをコードで表現 シンプルな構文に従うだけで、AppleScript内で複数のMacボイスを連携させることができます。この例では、ZarvoxとBubblesが『オセロ』 の重要なシーンを演じています 。