【illustrator】テンプレートをつくるには？【ExcelAi】

この記事は、Excel(エクセル) のデータを Adobe Illustrator(イラストレーター) に流し込むマクロ [ExcelAi](https://qiita.com/kawamasa/private/763fd596ec5e951e0a96) 使い方説明です。[ExcelAi の紹介記事はこちらから](https://qiita.com/kawamasa/private/763fd596ec5e951e0a96)

また、テンプレートの作成は Adobe Illustrator の基本操作がわかる方向けです。
(開発者の環境：Windows 10, Excel 2019, Illustrator CS6, 一部の機能はCS2でも確認)

#テンプレートをつくる前に
テンプレートの作成には何かしらコストが発生します。

<font color="DeepPink">**それを自動化すると、どれほどのメリットがあるか？**</font>

を考えておきましょう。

私たちは美しい印刷物を早く大量につくることだけに興味があるわけではなく、
制作したものを、より高レベルな目的の過程で利用することが多いです。

たとえば、ブランドイメージの高い商品を売るとか、中古のようなスペックがまちまちの一品物を大量に扱うとか、人件費を削減するとか、が高レベルの目的に相当します。

販売数や時間やお金など、何らかの代用になる評価方法を見つけ、(それがただの代用であることに留意しつつ、)
本来のビジネスゴールに近い自動化を目指しましょう。

#この記事の表記について
理解しやすくするため、Excelデータの各部位に名称を付けてこの記事を書きます

| 商品名 | 価格 | 詳細 |
|:-:|:-:|:-:|
| りんご | 150 | 青森県 |
| みかん | 300 | 静岡県 |
| ぶどう | 400 | 山梨県 |

・**テーブル**　…… 上記のような表計算データ。
・**ラベル**　　……「商品名」,「価格」,「詳細」 などの列名(カラム名)のこと。
・**値**　　　　……「りんご」,「150」, ……, ……,「山梨県」 などの入力項目(フィールド)のこと。
・**レコード**　……「りんご 150 青森県」, ……,「ぶどう 400 山梨県」などの1件分のデータのこと。
・**ラベル行**　……「商品名 価格 詳細」 の行のこと。

ちなみに
・行 ……ヨコ方向のセルの集合。(漢字の「行」→「亍」→「二」→ スキマがヨコ方向 で覚える)
・列 ……タテ方向のセルの集合。(漢字の「列」→「刂」→ スキマがタテ方向 で覚える)

#しくみを理解しよう


「 **\***ラベル**\*** 」

のように、両端に「**\***」をつけたテーブルのラベルをillustrator のテキストオブジェクトの文字列として含むと、流し込みで該当の値に置き換わります。

たとえば、テンプレート.ai に「\*商品名\*って美味しい」というテキストオブジェクトを作成して、テーブルの「商品名」ラベルの列にある「りんご」というセルを選択して流し込みをすると、「りんごって美味しい」というテキストオブジェクトに変化します。

**メモ帳の置換機能と同じしくみ**です。

画像に関しても置換できます。たとえば

「 C:\Users\TEST\Pictures\商品画像.jpg 」

という画像を illustrator に埋め込まずに配置して、テーブルの「りんご」というセルを選択して流し込みをしたとします。
ExcelAiは、りんごのレコードでラベルが「商品画像.jpg」の列のセルの値である**URLやファイルパス**、たとえば 「http://.exsample/img/ringo.png」など形式から**画像をダウンロード**して差し替えます。

画像は次の3点に留意です。
・テンプレートに埋め込んだ画像は置き換えられません。(埋込み画像は無視されます)
・画像差し替えはフルパスではなくファイル名「〇〇.jpg」「△△.png」のラベルを探しに行きます。
・画像差し替えはテキストの置き換えのような「**\***」をつけるなどという概念がありません。

#つくりかたの流れ
ゴールを決め、逆算で鋳型(いがた)をつくっていきます。

1. 完成したデザインを一つ用意する。(実際のPOPや名刺などのひとつ)
2. **フォント・位置・サイズはそのまま**「りんご」「150円」などを「\*商品名\*」「\*価格\*」など流し込みのダミーに書き換える。
3. デザインをテンプレートとして別名保存し、ExcelAi.xlsm からデータの**流し込みをためします**。
4. 出力結果とテンプレートを見比べながら、**文字や画像のはみ出しなどを修正していきます**。
5. 手順3. と 手順4. を繰り返して洗練していきます。

★ 前の状態に戻れるよう、テンプレートはバージョン管理やバックアップを頻繁にしましょう。

#名札をつくってみよう(チュートリアル)

##シチュエーション
3月末、今年も新入社員が入社してきます。
あなたは人事の担当です。新入社員のあれやこれやの担当です。

「[新入社員の名簿はココ](https://www.dropbox.com/s/r160fybi6kt4l1g/%E6%96%B0%E5%85%A5%E7%A4%BE%E5%93%A1%E3%81%AE%E5%90%8D%E7%B0%BF%28%E3%82%B5%E3%83%B3%E3%83%97%E3%83%AB%29.xls?dl=1)に置いとくから名札の作成とかよろしくね！」
そういって上司は去っていきました。

※ちなみに今年の新入社員は100人です。

##作業してみよう
とりあえず、実際の名前やふりがなを使って、一人分を完成させます。
こんなイメージになりました。
![1四角パスの中に名前とふりがなを入れただけです.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/441999/6efb0021-65fb-0be8-7789-bc9f590e5bff.png)
(四角パスと名前とふりがなを書いただけです)

これをテンプレート化していきます。
見本のデザインはとっておいて、コピーを編集すると比較しやすいでしょう。

「名前」や「ふりがな」が Excel から流し込まれるようにするためには、
「\*名前\*」「\*ふりがな\*」のような「**\***」で囲ったダミー文字列に変えておきます。
こんなイメージになりました。
![2ひだりによってる.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/441999/977bacb6-4a81-3d54-011b-b224247c12dd.png)
(文字列を流し込みダミーに置き換えた)

ん？なんか重心が左に寄ってる？
そっか、テキストが左揃えでした！中央揃えにして位置も修正します。
![段落揃えかえよう.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/441999/8665b4ef-4ec4-04dc-68c5-67d616761487.png)
(左揃えになってたので)
![段落揃え変えたわ.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/441999/391e7d2f-396d-57d5-b2fc-4cadba49c87f.png)
(中央揃えに変えた。位置も調整した)

これを .ai で保存しましょう。
ExcelAi.xlsm のある階層に「テンプレート」フォルダを作成して、その中に保存します。
![5フォルダつくった.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/441999/8b697028-1542-0533-7413-ccc86b9247ce.png)
(「テンプレート」フォルダをつくった)
![6保存したわ.15.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/441999/0f7a5e57-2e31-9be5-d623-327affc056e8.png)
( .aiで保存した。保存先はどこでもOKだが、ExcelAi.xlsm と近いと何かとラク)

###さっそく、流し込みをためしてましょう。
[ダウンロード](https://www.dropbox.com/s/r160fybi6kt4l1g/%E6%96%B0%E5%85%A5%E7%A4%BE%E5%93%A1%E3%81%AE%E5%90%8D%E7%B0%BF%28%E3%82%B5%E3%83%B3%E3%83%97%E3%83%AB%29.xls?dl=1)した名簿を開いて、内容をExcelAiブックの新しいシートにコピーします。
(コピー後、ダウンロードした名簿はもう使わないので閉じてしまいます)

![7名簿コピペしたわ.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/441999/4ef024d4-ef46-200b-d647-922887f24329.png)
(名簿をコピペした)

適当なセルを一つ選択して[Ctrl] + [T]キーを叩きます。
さきほど作ったテンプレートを指定して[OK]ボタンを押します。
![9Ctrl+Tためしてみよう.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/441999/d679e858-7dc9-9b66-9c6b-3ea99ab16365.png)
( [Ctrl] + [T] でメニューが出てくる。テンプレートを指定し出力は空欄で [OK] )

「最大何件を流し込めますか？」と聞かれたら「 1 」と入力してください。
なぜなら、テンプレートにはまだ1人分しか流し込みのダミー文字列を用意してないからです。
(詳しくは[FAQ](https://qiita.com/kawamasa/private/763fd596ec5e951e0a96#q-%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88%E3%81%AE%E5%90%8D%E5%89%8D%E3%81%AB%E5%90%AB%E3%81%BE%E3%82%8C%E3%82%8B-1-%E3%81%A8%E3%81%8B-12-%E3%81%A3%E3%81%A6%E3%81%AE%E3%81%AF%E3%81%AA%E3%81%AB)の「Q. テンプレートの名前に含まれる [1] とか [12] ってのはなに？」にあります)
![10最大何件を流し込めるの.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/441999/fc203967-47e5-03ed-3d27-c0e1c0bd19b4.png)
( 1 と入力して [OK] )

「テンプレートのファイル名に[1]を入れますか？」と聞かれたら、「はい」を押してください。
理由は、流し込みテストのたびに「最大何件を流し込めますか？」と**いちいち聞かれないからラクになる**と認識しておけばいいです。
![11なまえ自動変更しとくか.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/441999/99161ce0-f964-7ea5-fdaa-6af864f3101a.png)
(「はい」を選択)

###さて、エクセルデータは流し込まれましたか？
(もし途中で止まってしまうような問題があれば[FAQ](https://qiita.com/kawamasa/private/763fd596ec5e951e0a96#faq)で解決策を探してみてください。)
正常に完了すればこんなふうになっています。
![11流し込めた.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/441999/a1137f2d-6cb4-70ad-04ae-740662d72cff.png)
(「\*名前\*」「\*ふりがな\*」が Excel のレコード内容に置き換わり、PDFで保存された)

###ところで、長い名前を流し込んだらどうでしょう？
こんなイメージ
![12てしがわらしょういち.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/441999/4f0fcf68-7a34-a9dc-18db-22829987614a.png)
(枠より外にあふれてしまった)

**はみ出さないよう自動で縮小する指示**をしましょう。
名札[1].ai テンプレートを開き、"どのサイズまで許容するのか"の意味合いで、**四角パスを描き**ます。
![13四角パスつくった.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/441999/6aac4b4e-875f-1a35-8912-b71a5747ab52.png)
(四角パスをつくった)

対象のテキストとパスを選択。グループ化します。
そしてレイヤーパネルからグループ名を"align-center"に変更します
![14グループ化したわ.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/441999/f610923e-17a0-9122-26ba-c03ba87e4ea7.png)
(グループ化した) 
![15グループ名も変えたわ.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/441999/edebfc6c-aa9f-a8b9-42af-812c6607cb22.png)
(<グループ>を align-center に名前を変更)

**保存して**、もう一度流し込んでみましょう
![16てしがわらOK.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/441999/9c634dd1-34b9-488b-77e5-76931739f3a7.png)
(枠に納まるよう縮小されている。説明のため線色をグレーにしたが、実践では透明色にする)

これで問題なさそうですね！1人分が完成です。

###複数人分のレコードを流し込めるように複製していきます
見本のデザインは削除して、サイズや位置も調整してこんなふうに複製しましょう。
<details><summary>【TIP】正確な位置に複製するコツ</summary>
[Shift] を押下しているとオブジェクトの移動の際、位置や縦横比が正確に保たれます。
①コピーしたいオブジェクトを選択
②[Shift] + [Alt]を押下し (Shift：正確な位置に Alt：コピー の意味)
③複製したい位置にドラッグアンドドロップ
[Ctrl] + [D] で最後の作業を繰り返します。
</details>
![17複数人分つくったわ.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/441999/0d176ca9-28ff-1795-e249-0ce03e320ad2.png)
(複製した)

この状態でデータを流し込むとこうなります。
![18てしがわらまみれに.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/441999/cb5f3004-ff4a-0b05-9908-1fca89acdb96.png)
(ぜんぶ同じ名前になった)

このままではすべて同じ名前になってしまします。

10人分のレコードを流し込めるようにするには、テンプレートの名前を \[1\] から__\[10\]に変更__しておきます。
もう一度流し込んでみましょう。名前が変更されたので、Excel側でもテンプレートを指定し直す必要があります。
![19名前変更.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/441999/7f408eab-f7b2-fce2-5db8-055f14bc9c04.png)
(テンプレート名を変更)
![21複数人選んで.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/441999/dd7356bb-b6e7-4ebc-fa91-3eebcab85cff.png)
(複数人分セルを選んで)
![21テンプレート指定変更.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/441999/58710985-312c-714c-26f3-a9bd193e21b8.png)
(テンプレートの指定して[OK])
![22完成.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/441999/1a54d22d-9813-9b7a-67ea-944e769904b8.png)
(選択セルの人数分が流し込まれた)
これで完成です。

##テンプレートをいじってみよう
###そういえば、上司は「名札の作成"とか"よろしくね！」と言っていました。
・個人ロッカーにも名札が必要かもしれません。
・個人の日報を綴るリングファイルに背表紙をつける必要があるかもしれません。
・新入社員は新しい環境に期待が高くて、おしゃれな名札を想像しているかもしれません。

テンプレートをいじって気になったことは実験してみてください！
名札のチュートリアルは以上です

#ExcelAiはいろいろできます

ここでは紹介しきれない

・画像の差し替え
・align-center と max-width の違い
・テーブルに値がないときに任意の文字列を消す機能
・条件分岐によるレイヤー表示・非表示の機能
・JANバーコードの入れ方

などできることがまだまだ多くあります。
今後はユーザーの数と要望を見てFAQなどで解説するかもしれません。

解説を待てない方はつくった同梱のサンプルテンプレートなどを見て研究してみてください。

ExcelAiで流し込めるテンプレートをつくるには？の記事は以上です。