AppleScript 完全入門 パート 2: スクリプトの概念とサンプル

AppleScript 完全入門 パート 2: スクリプトの概念とサンプル
AppleScript 完全入門 パート 2: スクリプトの概念とサンプル

AppleScript、多くのMacユーザーが複雑すぎると思って無視している素晴らしいリソースです。皆さん、AppleScriptは物事を自動化する素晴らしいツールです。ただ、やる気がない、あるいは知識が足りないという理由で、なかなか使い始められない方も多いと思います。AppleScriptの優れた例を集めた記事を書きましたが、それでも本格的な入門書はありませんでした。

そこで、iScript Netcastの友人JesseにAppleScriptに関するシリーズ記事を始めてもらうことにしました。これはシリーズの第2弾です。まだご覧になっていない方は、ぜひ第1弾「AppleScript完全入門」もお読みください。iScript Netcastへの連絡はTwitterでも受け付けています。

楽しむ!

最初のステップ

プログラミング言語を学ぶ際、特にAppleScriptを学ぶ際には、アプリケーションに何をすべきかを指示するだけでなく、実際に役立つスクリプトを書くために理解しなければならない概念がいくつかあります。これらの概念は、あなたが書くすべてのスクリプトの構成要素であり、すぐに第二の性質のように使いこなせるようになるでしょう。

スクリプトを作成する際に最初に認識すべき概念は、コマンドです。コマンドとは、スクリプトのアクションを実際に実行する英単語のことです。コマンドは「再生」「一時停止」「アクティブ化」といった単語から、「デスクトップに新しいフォルダを作成」といったより長く複雑なものまであります。現在、OS Xは1秒間に10,000個のAppleScriptコマンドを処理できます。これは、AppleScriptがインタープリタ型言語であるにもかかわらず、ほとんど気づかないほどの高速です。

AppleScriptやほぼすべてのプログラミング言語にとって不可欠な2つ目の概念は、変数です。変数とは、プログラマーがコマンドやアプリケーションのレスポンスなどの結果を格納するために考案する単語や短いフレーズです。変数は、データとやり取りし、スクリプト内で操作することを可能にするため、プログラマーやスクリプターにとって非常に役立ちます。

この記事で最後に解説する概念は、コードブロックの概念です。コードブロックはAppleScriptのいたるところに存在し、「tellブロック」「if-then」文、「repeat」ループなど、様々な形で知られています。これらの「コードブロック」を使うことで、文を整理してグループ化することができ、コードが適切な論理順序で実行されるようになり、読みやすくなります。

最初のスクリプト

私が最初に作ったスクリプトの一つはiTunesで動作しました。再生回数が0の曲をすべてリストアップするスマートプレイリストを作成していました。このリストには、iTunesライブラリにある曲の中で一度も聴いたことのない曲がすべて表示されていました。しかし、リスト内の曲を聴き始めると、既に聴いた曲がいくつかあることに気づきました。そこで、あるトラックの再生回数を0から1に変更するスクリプトを作成し、そのトラックをスマートプレイリストから削除することにしました。

最初のスクリプトは、似たようなものから始めるべきです。インターネットで共有したり、ワークフロー全体をスクリプト化しようとしないでください。そうしないと、学習の過程で挫折してしまうでしょう。スクリプトは一つずつ作成しましょう。上達するにつれて、スクリプトを組み合わせてより多くの機能を持たせることができるようになります。最終的には、多くの機能を備えたスクリプト、あるいはフル機能のアプリケーションとして単独で動作するスクリプトを作成できるようになるでしょう。

今日は、私の最初のスクリプトを簡単に紹介します。皆さんもご自身で同じ状況を設定し、スクリプトがどのように動作するか試してみてください。*注:このスクリプトを以下の通りに記述すると、プレイリストからすべてのトラックが削除されます。

コード

説明

基本的に、スクリプトの動作はこんな感じです。最初の行では、アプリケーション「iTunes」とやり取りするためのtellブロックを作成しています。次に、theTracksという変数を作成し、「Not Listened To」というプレイリスト内の各トラックの一意のIDのリストを格納します(このプレイリストは前述の通りに作成されているはずです)。

次に、繰り返しループがIDリスト内の各アイテムを1つずつ実行し、各アイテムに対してさらにコマンドを実行できるようにします。各アイテム(xという新しい変数として指定)に対して実行しているコマンドは、再生回数を1に設定することです。これにより、トラックはスマートプレイリストの要件を満たさなくなり、削除されます。

今週はこれで終わりです。次回は、AppleScript のいくつかのコンセプトについて見ていきます。これにより、スクリプトを単一の tell ブロッ​​クにとどまらず、お気に入りのアプリケーションのスクリプトをより深く理解したり、ほぼ自己完結型のアプリケーションであるスタンドアロンスクリプトを作成したりできるようになります。

クラブ・マックストーリーズ

追加コンテンツと特典にアクセスする

Club MacStories は 2015 年に設立され、ほぼ 10 年間にわたって毎週独占コンテンツを提供してきました。

毎週、毎月の電子メール ニュースレターから始まったものが、すべての MacStories ファン向けに設計されたメンバーシップ ファミリーに成長しました。

詳細については、こちらおよびクラブの FAQ をご覧ください。

Club MacStories : アプリ、ヒント、自動化ワークフロー、長​​文執筆、MacStories Unwind ポッドキャストへの早期アクセス、定期的な景品など、盛りだくさんの情報を満載した、電子メールと Web 経由の週刊および月刊ニュースレター。

Club MacStories+ : Club MacStories が提供するすべての機能に加え、アクティブな Discord コミュニティ、クラブの過去のカタログ全体を閲覧するための高度な検索機能とカスタム RSS 機能、ボーナス コラム、多数のアプリ割引などが含まれます。

Club Premier : 上記のすべてに加え、早期に、広告なしで、高ビットレートのオーディオで配信される当社の主力ポッドキャストの拡張バージョンである AppStories+ が含まれます。