Adobe IllustratorとExcel VBAを連携させることで、さまざまな操作を自動化できるのをご存じですか?
私は、別部署の設計データを数値化し、その情報をもとにIllustratorで版下(デザイン原稿)を作成するという業務を担当しており、この連携を活用して多くの処理を自動化してきました。
ここではテキストを座標と一緒に書き出してみますが、文字列以外にもレイヤー、パス、グループ化、PDF,SVG書き出しなどもできます。
アクションではできない処理も可能です。
参照設定
エクセルのVBE画面(ALT+F11)で参照設定を開き、「Adobe Illustartor XX Type Library」をでチェックします。

コード
aiファイルを開いた状態で、以下のVBAを実行するとテキストを書き出します。
Sub getIllustratorText()
Dim i As Long
Dim aiApp As Object
Dim aiDoc As Illustrator.Document
Dim aiTextFrame As Illustrator.TextFrame
Set aiApp = CreateObject("Illustrator.Application")
Set aiDoc = aiApp.ActiveDocument '現在のアクティブなaiファイルが処理対象
i = 1
For Each aiTextFrame In aiDoc.TextFrames
i = i + 1
Cells(i, 1).Value = aiTextFrame.Contents 'テキスト内容
Cells(i, 2).Value = aiTextFrame.Anchor(0) 'x座標
Cells(i, 3).Value = aiTextFrame.Anchor(1) 'y座標
Next
End Sub


書き出して文字校
このエクセルに書き出した文字列をChatGPTのAPIを使って文字校ができなるといいかなと思っています。
これはいつか試してみます。
テキスト内容の書き換え
このようにテキストの書き換えもできます。
aiTextFrame.Contents = i
処理が遅い場合の対応
今回のサンプルのようにAdobeのソフトはVBAと連携することが可能です。ただし、CC ver2021ぐらいからの不具合?で処理する対象が多くなると、処理に時間がかかる場合があります。
個の不具合の対策を独自で行いましたが、ノウハウになるので本サイトには公開しません。すみません。
閲覧数:102 ビュー