AppleScriptの特徴と使い方を徹底解説!
Apple標準のプログラムにAppleScriptというMacOSに向けたスクリプト言語があります。
使用することで、こちらの意図した動作(データの抜き出しや保存・印刷など)を行う事が出来ます。
大量に同じ作業を行う場合に使用し、自動で処理を行い業務時間の短縮を図りましょう。
ここではAppleScriptについてどんなことが出来るのか?など、初心者に向けた内容を解説していきます。
AppleScriptを使って日々の業務を効率化させよう
AppleScriptを使いこなすことで作業の時間を大幅に短縮する事ができます。
通常の作業だと、アプリケーションやプログラムを起動し自分で必要な作業を探し、データベースから必要なデータを抜き出し、計算や印刷したりする必要があります。
これを掃除に例えると、お掃除ロボットのように事前に「壁、段差を検知すると向きを変える」「バッテリーが無くなりそうな場合は充電しにドックに戻る」など事前に条件を出しルールを作成します。
一度ルールを決めることで、あなたは掃除の作業は行う必要はなく、行う事は「お掃除ロボットの開始ボタンを押す(実行の処理を行う)」ことで掃除作業中は他の作業を行う事ができます。
掃除の結果を見て予想したより良くない結果になっていたら都度そのルールを見直していくという作業になります。
AppleScriptでできることは?
AppleScriptで出来ることは沢山ありますが、まずは以下の5つを覚えておきましょう。
- 指定時刻で行えるタスクの実行処理
- ファイルの変換およびファイルの操作
- データベースと他のアプリケーションの間でのデータの転送
- それぞれのアプリケーションで行えるアクションの操作
- 複数のアプリケーションのデータを連結してまとめる等の処理を行う自動化処理
参考資料はどこで入手できるのか
では実際どのように勉強していけばいいのでしょうか?実際に学校があるわけではないので独学で学んでいく方法が主流です。
ですが、命令文(スクリプト)は直感的な単語で構成されているため、他言語の経験がある方であれば、習得には多少の時間があれば十分使いこなせるものです。
スクリプトの構成や例文などは以下の手段で手に入れることができます。
本家アップルのサイトで入手
最新情報はAppleサイトを確認するのがいいでしょう。
現在利用が可能なサイトを以下に記載します。
英語での情報になりますが、情報量としては日本のサイトより本国のアメリカのサイトの方が多いので合わせてアドレスを載せます。
書籍での勉強は可能?
書籍でも販売はされていますが、現在は新刊の発行はほとんど見つかりませんでした。
上記のヘルプのサイトに最新情報がのっていますので書籍での情報収集は難しい状況です。
個人のサイトで公開している情報から入手
調べると一番見つかるのが個人サイトやブログでの情報です。
基本的なスクリプトの使い方や使用できるアプリケーション、スクリプトエディタに記入するプログラムの実行例など、情報としての量は沢山見つけることができます。
ですが、かなりマニアックな情報であったり、最新の情報ではなかったり、欲しい情報とマッチするかどうかは運次第なところもありますが、読み物として見る分には十分な情報量があります。
それでは基本的なスクリプトについて使い方と解説を行います。
スクリプトを実行する準備
スクリプトを作るにはMacに標準に搭載されている「スクリプトエディタ」が必要です。
Spotlight(メニュー右の虫眼鏡アイコン)に「エディタ」と入力すると「スクリプトエディタ」が検索結果に現れるので、そちらにコードを記入していきます。
今後も頻繁に使用するのでDockに登録しておくといいでしょう。
スクリプトの入力欄に必要な単語を指定することで様々な機能が実行できます。まずは簡単な命令文から解説していきます。
注意点として命令文は全て半角で入力してください。空白を全角で入力するとエラーがでます。
全角の空白は見直したときに間違いに気付きにくいので注意してください。
音を鳴らそう
スクリプトエディタが起動したらスクリプト入力欄に「beep」と入力して[▶]ボタンを押すと警告音が出ます。
「beep」は警告音を出すというプログラムの指令になります。
現在の時間を表示させよう
同じようにスクリプトの入力欄に「display dialog (current date) as string」と入力し、[▶]ボタンをおすとダイヤログに現在の時刻が表示されます。
この様にそれぞれの命令文の意味を知っておくことで複雑な命令も行えることが出来るようになります。
今回の命令文ではそれぞれ以下の様な意味があります。
- display dialog ダイヤログ画面に表示させる
- current date 現在の時間
- as string 文字列として処理する
ダイアログに複数のボタンを張り付ける
ダイヤログは特に指定しなければ”OK“と“キャンセル”の2つを指定するようにできていますが、それを任意の数や文字に指定する事も可能です。
「display dialog “信号機で止まれの色は?” buttons{“赤”,”黄色”,”青”}」のように入力することで“信号機で止まれの色は?”いう文字が出で、「赤・黄色・青」の3つのボタンを入力するダイヤログを表示する事が出来ます。
命令文の入力もショートカットが可能(入力補助機能)
スクリプトの文字を入力している途中に…がついていませんか?
これは入力の補助機能で…が出ている状態でF5キーをおすとAppleScriptで利用可能な命令文を一覧から選ぶことができます。
その中からカーソルキーで選択し、リターンキーを押すことでスクリプトを入力できます。
入力ミスをなくすためにもこの補助機能は有効に利用していきましょう。
完成済みのスクリプトもダウンロード可能
スクリプトの指令は汎用的な物が多いため、既に誰かが作っている可能性があります。
個人ブログやHPなどにそのスクリプトを公開しているものもあります。
命令文はイメージ出来ているが、記入している時間を短縮したい場合は公開利用をOKしているスクリプトを拝借して利用できます。
作業効率化を行うスクリプト作成作業自体も効率化する事もできますが、これには注意が必要です。
公開しているスクリプトの注意点
インターネットで公開しているため、公共的なものであるとの解釈もできますが、公開している著作者に了解を必要とする場合や商用利用の場合は相手の了承を得てから利用しましょう。
特に気をつける必要があるものは悪意のあるプログラムには冷静に対処する必要があります。
本記事はこれからAppleScriptを勉強しようとする方に向けた記事になります。
その中でもプログラムの作成経験自体が少ない方に覚えておいてほしいのは、素姓のわからないプログラムは実行してはいけないということです。
対処方法
その対処方法はプログラム(AppleScriptではアプリケーション)を実行する前に、そのプログラムのスクリプトコマンドを確認して何を行うプログラムなのかを分析します。
そのプログラムの挙動を理解して、問題無いようであれば利用しましょう。
まずは命令文を作ってみよう
ではもう少し長い命令文の場合の解説も行います。
複数の行をまたぐ場合のルールもありますのでそれも合わせて紹介します。
ホームページを立ち上げよう
まずは例としてChromeを利用しGoogleのページを開くためのスクリプトを作成します。
- tell application “Google Chrome” #Chromeのプログラムの利用準備をします
- activate #Chromeの優先順位を上げます
- open location “http://www.google.co.jp” #Chromeを起動してGoogleを開きます
- end tell
以上がChromeを使いGoogleのページを開くためのスクリプトとなります。
まだ解説していない命令文など色々とでてきましたのでそれぞれ解説を行います。
- tell apprication”アプリケーション名称”
- end tellの間までのプログラムに対して処理を実行します。
#Chromeの・・・ 「#」より後の文章はプログラムには反映しませんがコメントとして記入する事ができます。
後に見直した時や別の人が見た時に何の命令文なのかがわかるように残しておくと便利です。
active tellで指定したアプリケーションの優先度を前面に持ってきます。
Open location “アドレス”に記載されたページを開きます。
プログラムで処理をする場合はパソコンの動作に出来るだけ負担をかけないように、余計な処理を行わないようにする必要があります。
今回の例ではChromeを利用してページを開く作業ですが、単純にopen ”google.co.jp”というスクリプトでも実行は可能です。
ですが、これはMacのsystemコンドに元々組み込まれた物を利用して処理を行っているため、その分時間がかかってしまいます。
標準で利用しているブラウザを探しに行くという処理が発生しているためその分プログラムの処理に時間を割いています。
(例)“包丁で材料を切る”という工程があった場合
これを例えば料理をする時に“包丁で材料を切る”という工程があった場合、tell apprication“包丁で材料を切る#材料を切るための工程を行います。
- active #ここでまな板に材料を置いて包丁を手に持つ。
- 材料をカット#ここで材料を切る工程を行う。
- ”end tell#包丁で材料を切る工程が終了。
という手順で処理が行われます。
自動化できるスクリプトの例
この様にスクリプトでは、手作業で行うものを自動で処理を行う事ができます。
他にもどのようなことが出来るのでしょうか?一例を紹介します。
例を参考に日々の業務でこれも自動化できるのではないか?など参考にしてください。
複数のWordデータの内容をそのままにテキストデータに変換する。
手作業で行う場合は「Wordを開く」→「名前を付けて保存」→「データ形式をテキストに変更」→「保存」という手順を自動で行うことができます。
数が多くなればなるほど自動化の効率が上がります。
同じようにエクセルで作ったデータ一名称変更表を作り、別名のファイル名に一括で変更するといった操作も可能です。
半角のカタカナ文字を全角のカタカナ文字に変換
手作業で行う場合は「半角のカタカナ文字を探し選択」→「再変換」→「全角カタカナ」の手順で行います。
半角のカタカナなどは見落としやすくもありますのでこの様な処理もスクリプトに向いています。
隣り合うセルが同じ値であればセルを結合する
複数の商品がまとまっているカタログ等で見かけることが多い表記です。
set処理等を使えば簡単に数値を比較する事が出来るため、表が大きくなるほどスクリプト処理に向いています。
消費税の税率を変更する
消費税率が変わった時に手作業で莫大な量の計算を行ったため、ミスが起きたという事例もあります。
お金に関わるのでミスをするわけにいきません。
スクリプト化して自動で変換してしまう事で、ヒューマンエラーを無くすことができます。
まとめ
Mac OSの標準に組み込まれているAppleScriptを使いこなすことで用意されている中から自分が出来ることを選択するのではなく、自分が行いたい作業を自分で作り出すことで本当の意味でプログラムを使う事が出来るようになります。
スクリプトの作成ルールも他のプログラム言語に比べて比較的容易に理解できるものが多いです。
そのためプログラム初心者にも扱いやすく、プログラム中級~上級者には比較的早くマスターできる言語だといえます。
日々の業務でルーチンとして行っている作業や大量に同じ処理を行う必要がある場合、スクリプトを作り自動で処理を行う事で大幅な時間を短縮する事が可能です。
処理の種類によりますが手動では1時間以上かかるような作業でも4~5分程度で終わります。
そのためスクリプトを作るための仕組みについては良く考える必要があります。
最新の情報はAppleのヘルプページや個人のブログ等を参考に練習してください。
その際は悪意のあるプログラムを実行しないようにプログラムコードの中身を理解できた者のみ利用していきましょう。
働き方改革が叫ばれ、作業の効率化を求められる声はさらに広がっていきます。
スクリプトは作業の作業効率化ももちろんですが、何百と処理を行ったとしてもヒューマンエラーなどが起きない為、高い品質で作業を進めることができます。
そのため、そのスクリプトを作る時に「どのような枠組み」で処理を行うのか、また出来るだけ処理時間が少なくなるような工夫が必要となります。
そのためには色々なスクリプトを作成し改善を行い、プログラムを使いこなしていきましょう。
toiroフリーランスは、SHIFTグループがプライムとして参画している独自案件をフリーランスエンジニア向けに紹介する唯一のプラットフォームサービスです。
エージェントによるサポートもありますので、ご利用を検討してみてはいかがでしょうか。