TOP > blog > Adobe InDesign vbs スクリプトによる表組操作(画像の配置)
インデザイン
2020/05/24

Adobe InDesign vbs スクリプトによる表組操作(画像の配置)

管理者用
blog

バリアブル印刷の話が入って来ました。
画像を配置する内容ですが、インデザインを使って、表組での対応が必要となりそうでした。
細かな処理が予想されるため、事前に予習をしておくことにしました。

私の場合、表組の事例は、それほど多くはないのですが、表への画像レイアウトは、見当たりませんでした。
また、この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)

関連記事