記事公開日
最終更新日
結構使える、汎用型自動組版スクリプト

今日は、バリアブル印刷にも使える自動組版のスクリプトを紹介します。
だいぶ前になりますが、自動組版用のスクリプトを作った事がありました。
色々な形に対応できる、汎用型のスクリプトです。
最初は、宛名シールや名札などに使っていたのですが、インデザインの結合機能を使うようになり、あまり使わなくなってました。
しかし、テキストフレームの溢れ処理機能なども付けていますので、結構便利です。
このスクリプトと仕様を改造、発展させれば、もっと使い勝手の良いものになるのではと思います。
必要なもの
- インデザイン
- エクセル
- テキストエディター
ファイル構成
以下のファイルを同じフォルダーに配置します。
任意のフォルダー
- 実行/vbs
- 可変データ.txt
- 組版仕様a.txt
- imgフォルダー
- 画像ファイル
- dataフォルダー
- xxx.indd
- xxx.pdf
vbsファイル     スクリプトファイルです。今回は、”汎用_自動組版55A.vbs” 
          と名前を付けてますがなんでも良いです。
          このファイルを、ダブルクリックで実行します。
可変データファイル  レイアウトするデータファイル。
          ファイル名は、特に決まりは有りません。
          組版仕様ファイルに記述します。
          TAB区切りのテキストファイルです。
組版仕様ファイル  レイアウト仕様を記述します。
          ファイル名を ”組版仕様a.txt" としてます。
          TAB区切りのテキストファイル
img フォルダー レイアウトする画像ファイルはこのフォルダーに保存しておきます。
Data フォルダー 組版の結果を、ここに保存します。
操作手順
1、可変データを整理します。
  タブで区切られた .txt ファイルのファイルです。
  エクセルで作成して、タブ区切りのテキストファイルに書き出すと良いでしょう。
2、仕上がりサイズで、実際のレイアウトをデザインします。
  インデザインの可変データを使って、1件分をレイアウトします。
3、2でレイアウトした、可変のテキストフレーム/画像フレーム 等の座標・サイズ・フォント
  ・・・・等の情報を記録しておきます。
4、組版仕様のテーブルに、可変データ情報、3で記録した座標等の組版情報をセットします。
  組版仕様テーブルは、タブ区切りのテキストファイルです。
  可変データと同様にエクセルファイルで作っておくと便利です。
5、スクリプトを実行します。
  結果は、インデザインファイルとpdfファイルで書き出すようにしてます。
スクリプトを改善する事により、機能強化が行える思います。
事例として、ダウンロードできるようにしました。
参考にしてください。
宛名シール事例
使うシールは次の様なシートです
4×5 で、1シートに20シートのタックシートです。
 
シールの寸法
 
1、可変データ
TAB区切りのリストデータです。
  エクセル等で最終データに加工すると良いでしょう。
  エクセルから、TAB区切りの .txt ファイルで書き出すのも容易です。
  データ変換機能は持たせていません
  例に示すように、様や御中なども全て、整えた形でのデータを用意します。
  1行目は列タイトルとしてください。
  事例では、[番号] [郵便番号] [住所] [住所付属] [会社名] [部署]の6項目です。
  列タイトルは、後で説明する組版仕様ファイルに登録します。
 
2、レイアウト
可変データの1行が1シールに相当します。
  シールの実際のサイズにレイアウトして確認します。
  結果の情報をフレーム毎に組版仕様ファイルに登録します。
  したがって、各フレームの情報を記録しておいてください。
  この事例では、使用しませんが、シールに共通して配置したい情報を登録できます。
  レイアウト確認時にPDFファイルで保存しておくと良いでしょう。 
3、組版仕様ファイル
実際には、タブ区切りの.txtファイルですが、エクセルファイルで説明します。
ページ仕様とフレーム仕様の2つの項目に分けられています。
ページ仕様
ページ全体に関する仕様を登録します。
| 項目 | 事例でのセット内容 | |
| データファイル名 | Book1.txt | |
| サイズ | 幅 | 68.58 | 
| サイズ | 高 | 38.1 | 
| 台紙 | 幅 | 297 | 
| 台紙 | 高 | 210 | 
| 台紙ファイル名 | ||
| 面付け台紙ファイル名 | A4シール用紙.indd | |
| 面付け方向 左上・右上 | 左上 | |
| マージン | X | 11.5 | 
| マージン | Y | 10 | 
| ドブ | 縦 | 0 | 
| ドブ | 横 | 0 | 
| 面付け | 行 | 5 | 
| 面付け | 列 | 4 | 
| 出力ファイル名 | 宛名ラベル | |
配置するテキストフレームの仕様
項目名 可変データ.txt ファイルの項目と同じ内容を使用します。
事例では、[番号] [郵便番号] [住所] [住所付属] [会社名] [部署]の6項目です。
[番号]は、レイアウトしませんが、先に記録した各項目の座標、フォント・・・などを登録します。
| フレーム仕様項目 | |
| 座標XS | |
| 座標YS | |
| 幅 | |
| 高 | |
| テキスト/画像 フォント | |
| フォント | |
| フォント | |
| フォントサイズ | |
| 行間 | |
| 縦/横 | |
| 平体 | |
| 長体 | |
| 左・中・両端・右 | |
| 上・中・下・両端 | |
| ofフォントサイズ | |
| of平体/長体 | 
4、実行
スクリプトファイルをダブルクリックします。
インデザインが開き、仕様に沿って自動組版が実行されます。
結果は、dataフォルダー内に保存されます。
 
事例のダウンロード
事例に使用したファイル一式をZIPファイルにまとめました。
興味のある方は、ここからダウンロード
添付のVBSスクリプトファイルは、拡張子を .txt ファイル名に変更してます。
拡張子を .vbs に変更して ”汎用_自動組版55A.vbs” で使用ください。
また、実際に使用する場合は、当たりでいれている罫線を削除してください。
事例使用にあたって、使っているインデザインバージョンで書き換える必要があります。
Rem ******************************************************
Rem インデザインの起動
Rem ******************************************************
Dim myIndesign
Set myInDesign = CreateObject("InDesign.Application.CC_J") 'バージョンCS* の指定を合わせる
'Set myInDesign = CreateObject("InDesign.Application") 'バージョンCS2015 の指定を合わせる
Rem ******************************************************
参考に 幾つかの事例を上げておきます。
シーツ事例2 ⇒ 事例シール2.zip
シール事例3 出荷ダンボールに貼るシールの事例
       バックに、pdfファイルをレイアウトしています。
写真展のラベル 画像ファイルを貼りこんでいる事例
⇒ 写真展.zip
出版物の特定ページ の事例
⇒ 株価.zip





