例えばForm1で、ボタンを押したらInDesignにファイルを5回テキストフレームの中に貼り付けるとします。
スクリプトの実行内容を1回のUndoで取り消せるようにしたいと思っています。
ネットで検索すると、サンプルが見つかったのでVB.NET用に書き直しましたが、
「System.Runtime.InteropServices.COMException: 'メソッド「DoScript」の
パラメーター「Script」の値が無効です。予想される値は File (String), String or
JavaScript Function ですが、値 nothing を受け取りました。'」
とエラーが出て、分からなくて困っています。
良きアドバイスを宜しくお願い致します。
※参照の追加で、InDesignを追加しています。
また、プログラム実行する際は、張り付けるInDesignファイルを開き、
テキストフレームで文字が入力できる状態にしています。
参考サイト
https://cat.adodtp.com/2016/08/23/?p=638
(参考サイトのサンプル)
Main()
function Main(){ app.doScript"doMain()",ScriptLanguage.JAVASCRIPT,[],UndoModes.fastEntireScript); }
doMain(){ //何か処理 }
VB
1Imports InDesign 2Public Class Form1 3 Private myInDesign, myDocument, myTextFrame, myPage, pageObj 4 5 Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click 6 Main() 7 End Sub 8 9 Function Main() 10 myInDesign = CreateObject("InDesign.Application") 11 myInDesign.DoScript(doMain, idScriptLanguage.idVisualBasic, idUndoModes.idFastEntireScript) 12 End Function 13 14 Function doMain() 15 myDocument = myInDesign.Documents.Item(1) 16 myTextFrame = myDocument.selection(1) 17 myPage = myDocument.Pages.Item(1) 18 pageObj = myInDesign.activeDocument 19 For a = 1 To 5 20 myTextFrame.place("C:\Users\ユーザー名\Desktop\データ\1.indd") 21 Next 22 End Function 23End Class 24
あなたの回答
tips
プレビュー