Automatorに初めて触ってみた件

## はじめに
タイトルに記載している通り、MacOS標準アプリの一つ「Automator」に初めて触ってみました。
自分自身Mac歴はだいぶ長いのになぜか触る機会が全くなかった「Automator」ですが、せっかく触るならと色々と情報をまとめてみました。
（だいぶ軽い内容なので、ディープな情報を求めてるAutomatorジャンキー向けではありません。ご了承いただけますと幸いです。）

## 環境
* macOS：Ventura 13.4.1
* Automator：2.10

## Automatorとは
<img width="200" alt="automatorアイコン.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2821685/e2d577c9-ef41-ccd1-e82a-06a1c40480cb.png">

AutomatorはMacOSの標準アプリです。
用意されたいくつかの「アクション」を組み合わせた処理を作成することで、作業の自動化・効率化を図ることができます。
既に用意されている「アクション」を元に作成するため、スクリプト言語などの知識がなくても処理が作成できます。

下記のように、いくつかの単純なアクションが用意されています。

<img width="500" alt="アクション.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2821685/c73d5139-5871-562f-6e7e-bbe23fc0f670.png">

そのアクションを下記のように組み合わせていくことで、1つの処理を作成していくことができます。

<img width="500" alt="ワークフローの例.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2821685/3f90b076-e37a-50c4-44e3-64f51973758b.png">

※ ただし、用意されていない「アクション」を実現するためには、スクリプト言語を用いて処理を記述する必要があります。
（色々やろうとすると、スクリプト言語で書いたアクションを間に挟む形になります。）

## 作成できる書類の種類
Automatorで作成した処理は書類という形で保存されます。

書類は8つに分類されています。
* ワークフロー
* アプリケーション
* クイックアクション
* プリントプラグイン
* フォルダアクション
* カレンダーアラーム
* イメージキャプチャプラグイン
* 音声入力コマンド

## 書類ごとの特徴
### ワークフロー
Automatorアプリケーションを開いた状態で処理を実行します。

### アプリケーション
生成された書類は下記のようなアイコンとして保存されます。
<img width="200" alt="アプリケーション1.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2821685/4dc254c1-83b4-2256-05d3-0b6f4f3c4b5b.png">
そのアイコンに対してフォルダやファイルをドロップ＆ドラッグすることで、そのフォルダやファイルを対象とした処理が実行されます。

### クイックアクション
フォルダやファイル、サービスメニュー[^1]、TouchBar[^2]から処理を実行できます。

フォルダやファイルから実行する場合は、対象となるフォルダやファイルの右クリックメニューのクイックアクションから対象のクイックアクションを選択します。
<img width="500" alt="クイックアクション1.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2821685/16aa0abf-6792-ceed-5f7b-234fbc2fe809.png">

サービスメニューから実行する場合は、対象となるアプリケーションを開いた状態でメニューバーの「対象アプリケーション名」→「サービス」から対象のクイックアクションを選択します。
<img width="500" alt="クイックアクション2.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2821685/42449ed9-bf5e-2a34-b284-fb70eda73230.png">

TouchBarから実行する場合は、事前にTouchBarに「クイックアクション」のアイコンを追加する必要があります。

システム設定を開き「キーボード」→「Touch Bar設定…」→「Control Stripをカスタマイズ…」から「クイックアクション」のアイコンをTouchBarに追加することができます。
<img width="500" alt="TouchBar設定1.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2821685/32541fb1-334c-0e16-efd2-a3f766352f74.png"><br/>
<img width="500" alt="TouchBar設定2.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2821685/25d0597e-8534-5309-11ba-7f5db22ba337.png"><br/>
<img width="500" alt="TouchBar設定3.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2821685/34b1fffd-6843-d4c6-828f-9d972fca00ad.png">

TouchBarに追加されたクイックアクションアイコンをクリックして対象のクイックアクションを選択することで処理が実行されます。

### プリントプラグイン
印刷時のメニューから印刷物を対象として処理を実行します。

処理を実行する場合は印刷時のメニュー下部のアローボタンから選択します。
<img width="500" alt="プリントプラグイン1.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2821685/777af816-097b-5b1b-36bc-9fb32ad78ff8.png">

### フォルダアクション
対象のフォルダにファイルやフォルダを追加した際に、そのフォルダを対象として処理が実行されます。

フォルダアクションは事前に対象のフォルダへの紐付け設定を行う必要があります。

まずは、対象フォルダの右クリックメニューから「サービス」→「フォルダアクション設定」を選択します。
<img width="500" alt="フォルダアクション1.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2821685/88aff002-12ec-f92f-f67d-a6f0e5205b7a.png">

次に「フォルダアクションを使用」にチェックをつけ、アクション付きフォルダに対象フォルダが入っていることを確認し、スクリプトに対象処理を追加することで設定完了です。
<img width="500" alt="フォルダアクション2.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2821685/bc86bd94-2b11-47e4-b0f4-3ae2e9b1c598.png">

### カレンダーアラーム
カレンダーアプリで指定した日時に処理が実行されます。

設定はカレンダーアプリから実施します。
<img width="200" alt="カレンダーアプリ.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2821685/db929e04-9b7f-baec-4ef9-5ecf71649a61.png">

まずは、対象日にイベントを作成し「通知」→「カスタム」を選択します。
<img width="500" alt="カレンダーアラーム1.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2821685/9a83f89c-d3cb-eef2-c35a-bbae82adcbed.png">

次に「ファイルを開く」選択後に「その他」から対象処理を指定することで設定完了です。
<img width="500" alt="カレンダーアラーム2.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2821685/4cf1fb59-8a16-a7d2-b2a9-661621346c76.png">

### イメージキャプチャプラグイン
イメージキャプチャアプリで取り込んだイメージを対象として処理を実行します。
<img width="200" alt="イメージキャプチャアプリ.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2821685/e6177adc-0811-e2dd-b291-7fac264877e7.png">

処理を実行する場合は、画像を取り込んだ後にウィンドウ下部の「読み込み先」から選択します。
<img width="500" alt="イメージキャプチャ1.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2821685/18253dc2-3396-3de9-162e-56d2bbcd1eac.png">

### 音声入力コマンド
指定した単語をMacの音声コントロールから入力することで処理を実行します。

単純な例になりますが、下記のような処理を作成したとします。
<img width="500" alt="音声入力コマンド1.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2821685/a40a0f4b-80c1-071d-c5db-3330c5eaeac5.png">
この処理の「コマンド有効」をオンにし、Macの音声コントロールをオンにした状態でマイクに向かって **画面オフ（がめんおふ）** と話しかけることでスクリーンセーバが開始されます。

## 書類の保存先
一部を除いた書類は指定のフォルダ先に保存されます。

|書類の種類|保存先のフォルダパス|
|----------|--------------------------|
|**ワークフロー**|ユーザが保存時に指定したパス|
|**アプリケーション**|ユーザが保存時に指定したパス|
|**クイックアクション**|`/Users/ユーザ名/Library/Services`|
|**プリントプラグイン**|`/Users/ユーザ名/Library/PDF Services`|
|**フォルダアクション**|`/Users/ユーザ名/Library/Workflows/Applications/Folder Actions`|
|**カレンダーアラーム**|`/Users/ユーザ名/Library/Workflows/Applications/Calendar`|
|**イメージキャプチャプラグイン**|`/Users/ユーザ名/Library/Workflows/Applications/Image Capture`|
|**音声入力コマンド**|`/Users/ユーザ名/Library/Speech/Speakable Items`|

## 自動化の例
フォルダ内にある複数のイメージファイルを名前順に並び替えた状態で1つのPDFファイルにまとめる処理を、クイックアクションとして自動化してみた一例です。

<img width="500" alt="自動化1.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2821685/95ffd1ed-a584-28bc-6440-362d8aca2779.png"><br/>
<img width="500" alt="自動化2.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2821685/03d5fa32-5203-dec1-5557-0fba0fc1b757.png">

## あとがき
今回は軽く触ってみただけなので、まだ深く掘り下げていません。
今後時間が取れるようであれば、もう少し触ってみてその内容をまとめるかもしれません。

[^1]: メニューバーの「対象アプリケーション名」→「サービス」に表示されるメニュー
[^2]: Macbookのキーボード上部に取り付けられたタッチ式ディスプレイ