Macに「Automator」というユーティリティーソフトが標準でインストールされいるのをご存知でしょうか。これは様々な作業を自動化できる便利なソフトウェアですが、活用したことがないという方も多いのではないでしょうか?

そこで今回は、この「Automator」を活用した便利なミニアプリの作り方をレクチャーしたいと思います。一部「bash」というシェルスクリプトを使いますが、たった4行のコードで作成できるので、プログラミングを書いたことがない方でも誰でも作ることができます。では、早速学んでいきましょう!

スポンサーリンク




目次

  1. 基礎編:Automatorってどんなことができるの?
  2. お天気を読み上げるミニアプリの制作
  3. 応用するには?
  4. まとめ

1.基礎編:Automatorってどんなことができるの?

Automatorは冒頭でも述べた通り、作業を自動化するアプリケーションソフトです。最新のMacなら、どのMacにも標準でインストールされています。「アプリケーション」フォルダにインストールされているはずですが、まずは、こんなアイコンを探してみてください。

このソフトウェアを使うと、様々な自動化された作業手順(ワークフロー)を作成することができます。具体的には、次のようなワークフロー、または、アプリケーションを作ることができます。

  • ワークフロー … Automator内から実行するワークフロー。
  • アプリケーション … 自己実行型のワークフロー。ドロップされたファイルやフォルダに対して、またはダブルクリックして起動するミニアプリを作成できる。
  • クイックアクション … Finder、Touch Bar、および「サービス」メニューに追加できるワークフローや「システム環境設定」で管理するワークフロー。
  • プリントプラグイン … プリントダイアログで利用できるワークフロー。
  • フォルダアクション … Finder内のフォルダに関連付けられるワークフロー。フォルダに項目が追加されるとワークフローが実行され、その項目がワークフローの入力として使用される。
  • カレンダーアラーム … カレンダーのイベントがきっかけとなって実行されるワークフロー。
  • イメージキャプチャ・プラグイン … イメージキャプチャで利用できるワークフロー。
  • 音声入力コマンド … 音声入力がきっかけとなって実行されるワークフロー。

※これらの機能はバージョン2.9のものです。

今回この記事で扱うのは、2番目の「アプリケーション」ワークフローの作成です。アイコンとしてワークフローを保存してダブルクリックで起動できるので、通常のアプリのような感じで使うことができます。

2.お天気を読み上げるミニアプリの制作

まずは今回作成するミニアプリ内で実行する処理の流れを押さえておきましょう。お天気を読み上げるには、次のような処理を実装することが必要です。

「tenki.jp」というサイトにSafariでアクセスして、
お天気情報(文字だけのテキスト)を取得する

サイトには読み上げさせたいお天気以外の情報も含まれるので、
不要なテキストを削除し必要なテキストのみに加工する

Mac標準の「テキストエディット」にある
音声読み上げ機能でそのテキストを読み上げる

これらの処理を一つのアイコンに凝縮させ、裏側で実行するようにプログラムするのです。

プログラムすると言っても、コードはほとんど書きません。例外として、bashというシェルスクリプトを4行だけ書きます。これは不要なテキストを削除し必要なテキストのみに加工するために使用します。

2-1.新規書類の作成

まずは「Automator」をダブルクリックして起動してみてください。起動したら、小さいウィンドウが開くと思いますが、そのウィンドウの左下にある「新規書類」ボタンをクリックしてください。

「新規書類」ボタンをクリックすると、今度は次のようなウィンドウが開くはずです。

この画面のように「アプリケーション」を選択してから、「選択」ボタンをクリックします。

2-2.お天気情報の取得先の設定

左側に2列のリスト、右側は空白という状態になると思いますが、1番左のリストから「インターネット」を選択して、今度は2番目のリストから「指定されたURLを取得」を選択して、そのまま右側の広い空白エリアにドラッグしてください。すると次のような状態になります。

初期状態だと、appleのサイトのURLが入力されていると思いますが、それをカーソルで全て選択して、「https://tenki.jp/lite/generalcondition/」と入力し直してください。念のため、どのようなサイトなのか予め確認してみてください。なるべく取得したい情報以外の無駄な情報が少ないサイトを選びました。これで読み上げテキストを取得するURLの設定は完了です。

次いで、1番左のリストから「インターネット」を選択して、今度は2番目のリストの「Webページからテキストを取得」を選択して、そのまま右側の広い空白エリアにドラッグしてください。その際に「標準テキスト」を取得が選択された状態にしておいてください。これでお天気情報のテキストを取得することができます。

2-3.テキストを必要な情報のみに加工する

1つめのシェルスクリプト

今度は、取得したテキストから不要な情報を削除するためにシェルスクリプトを設定します。1番左のリストから「ユーティリティ」を選択してください。すると2番目のリストの内容が変わりますが、その中から「シェルスクリプトを実行」を選択して、そのまま右側の広い空白エリアにドラッグしてください。これは2つ必要になるので、2回ドラッグして、右側のエリアに2つある状態にしておいてください。また「入力の引き渡し方法」が「引数として」になっているか確認してください。

今度はいよいよ「bash」というシェルスクリプトを書きます。1つめのエリアに次のようにテキストで入力します。

text=$1
echo ${text##*全国概況}

まず、1行目の「$1」ですが、これは引数と呼ばれるもので、この「シェルスクリプトを実行」という処理の1つ前の手順で得られた結果が格納されています。つまり、お天気サイトの全テキスト情報が入っているのです。

「text」は変数と呼ばれるもので、任意の文字列に決めることができるのですが、ここでは単純にテキストなので「text」としているだけです。「$1」に格納されているお天気情報と「=」で結ぶことにより「text」に格納し直しています。

2行目ですが、これは取得したテキスト情報の中にある「全国概況」というキーワードを探して「全国概況」というキーワードよりも前のテキストを省く処理をしています。読み上げのために欲しいのは、「全国概況」よりも後のテキストだからです。

2つめのシェルスクリプト

今度は2つめのシェルスクリプトに関してです。理屈は1つめと全く同じなのですが、処理内容が少し異なります。このように入力してみてください。

text=$1
echo ${text%%各地の天気概況*}

先ほどと比較して2行目のみが異なりますが、これは「天気概況」というキーワードよりも後のテキストを省く処理です。

2-4.テキストの読み上げ処理を設定する

今度はいよいよ最後の工程です。1番左のリストから「テキスト」を選択してください。すると2番目のリストの内容が変わりますが、その中から「テキストを読み上げる」を選択して、そのまま右側の広い空白エリアの最後の部分にドラッグしてください。

これまでの過程を確認するために画面キャプチャを用意しました。画面がこのようになっているか確認してください。

ここまでの作業ができたら、「ファイル」から「保存」を選択して「tenki.jp_天気概況読み上げ.app」等としてデスクトップ等に保存してください。この名称は任意のものでOKです。

2-5.実行してみよう!

完成したら、画面右上の再生ボタンをクリックしてみましょう。Automator上ですべての処理を実行させることができます。読み上げが開始されるまで10秒程度かかりますので、しばらく待ってみてください。ちゃんとお天気が読み上げられたでしょうか?

今度は、Automatorを終了して、デスクトップに保存された「tenki.jp_全国のお天気読み上げ.app」のアイコンをダブルクリックしてください。するとAutomatorなしの単体で実行されるはずです。読み上げが開始されると、Finderのメニューバー上に回転する歯車が現れますので、そこから読み上げを中断させることも可能です。

単体でも動作することを確認できましたが、後で処理を調整したいということが生じるかもしれません。情報取得先のサイトの文言や体裁が変更されてしまったり、URLそのものが変更されてしまうこともあり得るからです。その場合は、「tenki.jp_全国のお天気読み上げ.app」のアイコンをAutomatorのアイコンにドラッグしてみてください。すると、先ほどの設定画面として開くことができますので、後で調整することができます。

3.応用するには?

Automatorで作成されたアプリケーション・ワークフローは、このように後で調整することが可能なので、今までやったことを踏まえて、応用することも可能です。

ここまで全国のお天気概況の情報を取得して読み上げさせることができたわけですが、自分が住んでいる地域のお天気を読み上げさせることができるかやってみましょう。

「tenki.jp_全国のお天気読み上げ.app」のアイコンをAutomatorのアイコンにドラッグしてみてください。Automatorで開けたら、一番上の処理「指定されたURLを取得」のURLを「https://tenki.jp/lite/generalcondition/area-3.html」に変更してみてください。

次いで、1つめの「シェルスクリプトを実行」のシェルスクリプトの「全国概況」を「関東・甲信地方の天気概況」に変えてみてください。

text=$1
echo ${text##*関東・甲信地方の天気概況}

同様に、2つめの「シェルスクリプトを実行」のシェルスクリプトの「各地の天気概況」を「関東・甲信地方の天気概況」に変えてみてください。

text=$1
echo ${text%%日直予報士のポイント解説*}

このように変更してから、実行すると、関東甲信越地方のお天気情報を読み上げてくれるはずです。

このように、情報取得先のURL、テキストの読み上げを開始させたい直前のキーワード読み上げを終了させたい直後のキーワードの3つを変えるだけで、様々な情報を読み上げるミニアプリを作ることができるのです。

1つ注意点がありますが、読み上げを開始させたい直前のキーワードと読み上げを終了させたい直後のキーワードは、最短でマッチするようになっているので、読み上げさせたい部分にそれらのキーワードはないことになります。

最長でマッチさせたい場合は1つめのシェルスクリプトの「##」を「#」に。2つめの「%%」を「%」に変更するだけで可能です。

こうした点を踏まえれば、ニュースの読み上げ、株価の読み上げなど様々な事柄に応用できるはずです。自分なりに工夫して改造してみてください!

ちなみに、今回Automatorで作成した、2つのお天気読み上げアプリは下記からダウンロードすることができるようにしておきました。解凍してからお試しください。

お天気読み上げミニアプリ(全国版)
tenki.jp_zenkoku.zip

お天気読み上げミニアプリ(関東甲信越版)
tenki.jp_kantou-koushinetsu.zip

4.まとめ

今回はMacならではの活用法として、Automatorで作る天気読み上げミニアプリの作成をレクチャーしてみました。プログラミングをやったことがない方でも手軽に作ることが可能だと思いますし、お子さんと一緒に親子で作るのも楽しいかもしれません。是非チャレンジしてみてください!