マイクロソフトが、Office 2008の最上位バージョン「 Office 2008 for Mac Special Media Edition 」を実質半額で買えるキャンペーンを行っている(申し込み締め切りは2009年1月 31日まで)。
そこで今回は AppleScript について書くことにした。内容の大半は、Office 2008 を持っていない人でも楽しめるように書いたつもりだ。だが、本編に入る前に少しだけキャンペーンの話と、「Office 2008 for Mac Special Media Edition」について解説しよう。
ただし、このキャンペーンに乗って、「Special Media Edition」を買うか、3つあるOffice 2008 for Macの別のエディションを買うかは、じっくり考えた方がいい。3つのエディションの違いはこちらのページにある。スペシャル メディア エディションには、3万円近い価値があるMicrosoft Expression Mediaなどが付属している。ただし、Officeを同時にインストールできるマシンは2台までで、起動できるマシンは1台まで。Officeを家でしか使わないという人には、Expression Mediaは別売だが、同時に3台までのマシンで同時に利用できる「ファミリー&アカデミック」も魅力的な選択肢だ。
ところで、Office 2008のキャンペーンを祝う記事がなぜ AppleScriptなのかと疑問に思う人もいるかもしれない。それは、実「 Office 2008 for Mac Special Media Edition 」(と基本エディションの「 Office 2008 for Mac 」)には、便利な AppleScript が付属しているからだ。
tell application "TextEdit"
set theDoc to (make new document)
end tell
tell application "Safari"
repeat with i in every document
set theItem to ">" & (name of i) & return & (URL of i) & return & return
tell application "TextEdit" to make new paragraph at after last paragraph of text of theDoc with data theItem
end repeat
end tell
tell application "Safari"
make new document with properties {URL:"http://www.microsoft.com/japan/mac/column/contents/contents.mspx"}
delay 5
set theText to text of document 1
set wholeContents to (every paragraph of theText)
set titleList to items 74 thru -7 of wholeContents
set chosenItem to (choose from list titleList) as text
set counter to 0
repeat with i in titleList
set counter to counter + 1
if i as text is chosenItem then
set itemFound to counter
end if
end repeat
set columnNumber to ((count of titleList) - itemFound - 1)
set char1 to offset of "・" in chosenItem
set theTitle to (characters (char1 + 1) thru -1 of chosenItem) as text
set the URL of document 1 to "http://www.microsoft.com/japan/mac/column/contents/" & columnNumber & ".mspx"
delay 5
set theText to text of document 1
display dialog chosenItem default answer (summarize theText in 10)
end tell
すべてがうまくいけば、Safariで新規ウィンドウが開いた後、5秒後に本コラムの過去のタイトル一覧が表示されたはずだ。ここでタイトルを選ぶと、選んだタイトルの名前と、そのコラムの要約が表示されるはずだ(Mac OS X 10.5でチェック済み。ただし条件などによってはうまくいかない可能性もある)。
Macを使っていて、「あ、この操作、前にもやったことがある。また繰り返すのが面倒だな」と思うような時、たいていの場合、AppleScriptで解決できるのだ。実際、アップル社はMac OS Xに、いくつかのサンプルスクリプトを添付している。「アプリケーション」フォルダ内の「AppleScript」フォルダに「Example Scripts」というフォルダ(のエイリアス)がある。残念ながらあまり実用的なスクリプトはないが、「Info Scripts」というフォルダにある「Font Sampler.scpt」などはおもしろい(開いて実行してみよう)。
■ AutomatorはAppleScriptの進化形?
実はOffice 2008 for Macの上位バージョンには、このようなスクリプトのサンプルが多数付属している。実際にはすべてがAppleScriptではなく、半分くらいはAutomatorのスクリプトだ。 Mac OS Xには、AppleScript以外に、もう1つ非常によく似た「Automator」という技術が搭載されている。AppleScriptが非常に便利であるにも関わらず、あまり使われていないことを残念に思ったアップル社のエンジニアが開発した技術だ。AppleScriptでは、上記のサンプルのように、まるで英語の呪文のような命令語を駆使しないと作ることができず、敷居が高い。これに対して「Automator」では、ファイルを開く、テキスト情報をペーストする、といった命令1つ1つにアイコンを用意し、それらを並べ替えるだけでアクションが作れるようになっている。
AppleScriptもAutomatorもうまく使えば非常に便利な技術だが、これらの技術でアプリケーションを操るには、アプリケーションの側がこれらの機能に対応している必要がある。残念ながらすべてのアプリケーションが対応しているわけではないが、マイクロソフトは常にこの技術の積極的なサポーターだった。アップルがAppleScriptの技術を最初に発表したのは'90年頃。その後、'91年、なんと今から17年前にSystem 7というOSで、AppleScriptの原形が搭載されたとき、これを他社に先駆けて一番に採用したのがマイクロソフトのExcelだった。現在、マイクロソフト社でOfficeを開発しているMacintosh Business Unitの歴史は、まだ10年だが、同部門にもこの精神は引き継がれていて、Office 2008 for Macのアプリケーションは、Automatorにも真っ先に対応している(上位2エディションのみで、「ファミリー&アカデミック」版は対象外)。例えばWordであれば、文中の図や表に図表番号を振るAutomatorスクリプトや、透かしの挿入のスクリプト(不正コピーを防ぐために、書類の背景に出所がわかるようにあなたの名前や会社名を入れる機能)、目次の作成、Excelのファイルの結合やテキストファイルの取り込み、PowerPointプレゼンテーションのムービー変換、Entourageで受信したメッセージをTo Doアイテム(仕事)に変換、メールの添付ファイルを保存といった多彩なスクリプトやAutomator機能が付属している。
■ユーザーニーズにあわせて進化するアタッチャブルアプリケーション
さて、AppleScriptも、Automator対応のアプリケーションと言ってもいくつかのグレードがある。実は、これらの技術に真っ先に対応してきたOffice 2008 for Macは、もっとも高いグレードでの対応を果たしたアプリケーションでもある。
Office 2008 for MacのWord、Excel、PowerPoint、Entourageは、スクリプトのアタッチという機能に対応している。これはどういう機能かというと、よく使うスクリプトをアプリケーションのメニューに登録して簡単に呼び出せるようにする機能だ。つまり、アプリケーションのメニューそのものをユーザーのニーズにあわせてカスタマイズできる機能である。実際、これらのアプリケーションを起動すると、メニューバーの右端にスクリプトのアイコンが表示される。試しにEntourageのメニューを覗いてみると、「テキストファイルの挿入」など6種類のAppleScript項目の下に「Automatorワークフローサンプル」という項目が表示され、そこからさらに11種類のAutomator項目が表示される。
さて、今回の記事は冒頭で書いたように「Office 2008 for Mac Special Media Edition」のキャンペーンを祝って書いたものだが、「Special Media Edition」の最大の特徴と言えば、Microsoft Expression Mediaという、3万円相当の価値があるメディア管理ソフトが付属していることだ。実はこのExpression Mediaも、Automatorには対応していないが、AppleScriptにはアタッチ対応している。Expression Mediaは、元々、他社からiViewという名前で発売されていて人気が高かったメディア管理ソフトだ。世界中の多くのコンテンツ製作のプロフェッショナルが愛用していたiViewは、優れたAppleScript対応でも定評があった。これはおそらく動作保証の対象外だが、旧iView用のAppleScriptは、今でもiView社のサイトからダウンロード可能になっている。これらの多くは、Expression Mediaでもそのまま利用ができる。
[*1]
ちゃんとした人が作った AppleScript では、誤操作に備えたり、OS のバージョンに対処したりといったプログラミングを行うが、ここでは記事中に掲載しやすいように簡単に体感してもらうことを目指して、簡略化したプログラミングを行った。このため、Mac OS X v10.5以外では動作しないスクリプトが多いので注意して欲しい。