イラストレータ(aiファイル)内のテキストをエクエルに書き出す

投稿日:2025.7.17

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ぐらいからの不具合?で処理する対象が多くなると、処理に時間がかかる場合があります。

個の不具合の対策を独自で行いましたが、ノウハウになるので本サイトには公開しません。すみません。

閲覧数:104 ビュー