前回の記事で、VBSからIllustratorが操作できることを紹介しましたが、今回はIllustratorに登録されたPDFプリセットを列挙するスクリプトを紹介します。
下記スクリプトはIllustratorが起動済みであることを前提としています。Illustratorの起動からスクリプトに組み込む場合は、下記記事のコードをご参照ください。
Option Explicit Dim appAi Dim v, i Set appAi = Nothing '初期化 On Error Resume Next Set appAi = GetObject(, "Illustrator.Application") On Error GoTo 0 If appAi Is Nothing Then WScript.Echo "Illustratorを起動した状態でスクリプトを実行してください。" Wscript.Quit End If '下記でオートメーションエラーが発生する場合は、一度手動でPDFプリセットダイアログを表示してから実行 On Error Resume Next v = appAi.PDFPresetsList If Err.Number <> 0 Then WScript.Echo "Error:" & Err.Number & vbNewLine & Err.Description Wscript.Quit End If On Error GoTo 0 'PDFプリセットを列挙 For i = LBound(v) To UBound(v) WScript.Echo v(i) Next
Illustrator.ApplicationオブジェクトのPDFPresetsListプロパティから、PDFプリセットの名前を配列として取得できるのですが、私の環境だと単にIllustratorを起動しただけでは、下図のようにオートメーションエラーが発生しました。
一度手動でPDFプリセットダイアログを表示した後は、意図した通りにPDFプリセットが取得できたのですが、このあたりの挙動がいまいち掴めません。
外部スクリプトによるIllustratorオートメーションを試していると、度々こういった現象が発生します。
私の環境が悪いのか、Illustrator側の仕様かどうかは分かりませんが、「触っていてクセがあるなー」というのが、正直な感想です。
この記事へのコメントはありません。