Adobe InDesign vbs スクリプトによる表組操作(画像の配置)
管理者用
バリアブル印刷の話が入って来ました。
画像を配置する内容ですが、インデザインを使って、表組での対応が必要となりそうでした。
細かな処理が予想されるため、事前に予習をしておくことにしました。
私の場合、表組の事例は、それほど多くはないのですが、表への画像レイアウトは、見当たりませんでした。
また、このNAVIで、表の操作の紹介ページを思い出し覗いてみました。
しかし画像のレイアウトに関する記事は見当たらず、さらにその内容にがっかりさせられました。
この記事は、いずれ見直します。
ネット上において、「インデザイン vbs」で、私レベルに参考になる記事にお目にかかれる事はありません。
と言う事で、自分で試行錯誤するしかありません。
単純に、文字をレイアウトする程度に思って始めましたが、なんともいかず、大変な目にあってしまったのです。
始めてから、1週間。
何とか実現可能な方法を見つける事ができました。
一週間と言っても、こればかりやっているわけではないのですが、それでも久しぶりに苦戦した。
その方法を、これから紹介します。
試行錯誤の過程もお見せしたいのですが、まとめるのが大変なので、結果だけにしておきます。
私が、一週間、試行錯誤して解決した方法ですが、もしかしたら、簡単な方法があるのかもしれません。
なにやっているんだ・・・なんて笑われるかもしれません。
画像配置スクリプトの実行動画(参考)
画像を配置するスクリプト
以下の内容をメモ帳等に貼り付け、拡張子を.vbs としてファイル名つけて保存します。
そのファイルのアイコンをダブルクリックで実行します。
スクリプトには、1行ごとに、メッセージを表示で止めております。
インデザインを見ながら、OK を繰り返し進めてください。
下のスクリプト内の――① は、インデザインのバージョンによって書き換えてください。
ーー② の画像ファイル名もお持ちの画像に変えてください。
Rem Ind表操作.vbs InDesignの表操作のスクリプト
Set myInDesign = CreateObject("InDesign.Application") ’---①
Set myDocument = myInDesign.Documents.Add
gazFile = "I:\VBS 表操作\sasiba.png"'---②
Rem テキストフレームサイズを設定
Set myTextFrame = myDocument.TextFrames.Add
myTextFrame.GeometricBounds = Array(CStr(50) + "mm", CStr(20) + "mm", CStr(200) + "mm", CStr(180) + "mm")
Rem テキストフレームにテーブル挿入 3×2
Set myTable = myTextFrame.InsertionPoints.Item(-1).Tables.Add
myTable.BodyRowCount = 3
myTable.ColumnCount = 2
Rem 表のセルサイズを設定
myTable.Rows.Item(2).Cells.Item(1).Width = "80mm"
myTable.Columns.Item(1).Cells.Item(1).Height ="40mm"
Rem 画像を配置したい表の位置に対し、テキストフレームを配置して、モードを画像に変更
Set gazocell = myTable.Rows(2).Cells(1)
Set gazoframe = gazocell.InsertionPoints.Item(1).TextFrames.Add
gazoframe.GeometricBounds = Array(CStr(0) + "mm", CStr(0) + "mm", CStr(40) + "mm", CStr(80) + "mm")
gazoframe.ContentType = 1735553140'idContentType.idGraphicType '
gazoframe.Place (gazFile)