[ID CC-CC2022] Можно ли передать параметр jsx-скрипту из VBA

  • Автор темы Автор темы hulk1776
  • Дата начала Дата начала

hulk1776

Топикстартер
15 лет на форуме
Сообщения
738
Реакции
21
В яве вызывал скрипт и передавал ему параметр mStory.
Из VBA вызывать-то скрипт можно, но параметр уже теряется.
Не хотелось бы переписывать вызываемый скрипт на VBA. И долго, и придется следить за идентичностью обоих вариантов.
В Java было так:
Код:
var mScript = File("d:/Work/123.jsx");
app.doScript(mScript, ScriptLanguage.JAVASCRIPT, [mStory], UndoModes.FAST_ENTIRE_SCRIPT, 'proc');

В VBA:
Код:
myJavaScriptString = "var mScript = File(""d:/Work/123.jsx"");app.doScript(mScript, ScriptLanguage.JAVASCRIPT, [mStory], UndoModes.FAST_ENTIRE_SCRIPT, 'proc');"
MyValue = myInd.DoScript(myJavaScriptString, idScriptLanguage.idJavascript)
 
А зачем обязательно Story передавать? Может, все таки попроще как то можно, через id, name или label?
 
Я что-то вообще не понимаю этого двойного вызова одной строки.
 
Выкрутился так (если переменная не определена, то определяем ее заново):
Код:
if (typeof mStory == "undefined") {
    if(app.selection[0].constructor.name == "TextFrame"){
    var myFrame = app.selection[0];
    mStory = app.selection[0].parentStory;
    }else if (app.selection[0].constructor.name == "InsertionPoint"){
    mStory = app.selection[0].insertionPoints[0].parentStory;
    var myFrame = app.selection[0].parentTextFrames[0];
    }else{ // если выделен только текст
    mStory = app.selection[0];
    }
}
А в VBA выкинул эту переменную
Код:
myJavaScriptString = "var mScript = File(""d:/Work/Dropbox/MGUA/Backups/scripts/chistka.jsx"");app.doScript(mScript);"
MyValue = myInd.DoScript(myJavaScriptString, idScriptLanguage.idJavascript)

А зачем обязательно Story передавать? Может, все таки попроще как то можно, через id, name или label?
Story удобна тем, что данным скриптом можно почистить или весь текст во фрейме или только выделенный фрагмент. Например, в случае, если есть какой-то небольшой текст с обилием вордовской "грязи" типа лишних пробелов и пр. Такое как правило бывает в текстах листовок, благодарственного письма и пр. мелких доков.
Кроме того, пока VBA-пакет отлаживается, надо иметь возможно запусков и через панель скриптов. А там параметр Story передается, ессно, как надо.
 
Последнее редактирование: