• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

Решено Call app.run

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

xpro

Привет всем,
Подскажите как вызвать макрос(ms word) с параметрами в lotusscript ?

Код:
 Set app = CreateObject("Word.Application")
app.Visible = True
app.Documents.Open("C:\test1.docx")
 
 'вызов макроса
Call app.Run("CompareDocument")

пробовал так:
Код:
Call app.Run("CompareDocument("test1","test2")")
Код:
Call app.Run("CompareDocument(test1,test2)")
Код:
Call app.Run("CompareDocument,test1,test2")
Код:
Call app.Run("CompareDocument(\"test1\",\"test2\")")

думаю все варианты ( мб что то пропустил подскажите плз.

Заранее спасибо!
 

garrick

Lotus Team
26.10.2009
1 351
151
BIT
187
  1. откройте Word;
  2. включите запись макросов;
  3. произведите необходимые действия;
  4. выключите запись макросов;
  5. найдите записанный макрос и посмотрите что там написано;
  6. перепишите макрос на LotusScript.
 
X

xpro

перепишите макрос на LotusScript.

Хочу через LS передать местоположения документов, то есть file2 /
Переписал так:
Код:
file2 = "C:\test2.docx"
Set app = CreateObject("Word.Application")
app.Visible = True
Call app.Run("CompareDocument("+file2+")")


в макросе

Код:
Public Sub CompareDocument(file2 As Variant )
Dim file1 As Variant
file1 = "C:\test1.docx"
 
Documents.Open FileName:=file1
ActiveDocument.Compare Name:=file2, CompareTarget:=wdCompareTargetNew
 
End Sub

'Если внутри ms word вызывать то так:
Код:
'Call NewMacros.CompareDocument(file2)
нооо... без результатно((((
хелп
 
Последнее редактирование:
X

xpro

@xpro, сами-то видите различие? ;)
вижу.. :happy: , но все равно параметры не принимает )))

пробовал так :
Код:
Call app.Run("NewMacros.CompareDocument("+file2+")")
:banghead:
[DOUBLEPOST=1432114638,1432114470][/DOUBLEPOST]в VBA не могу вызвать функций с параметрами через LS :stena:
 

oshmianski

Достойный программист
Lotus Team
25.04.2012
711
59
BIT
2
Function Run(MacroName As String, [varg1], [varg2], [varg3], [varg4], [varg5], [varg6], [varg7], [varg8], [varg9], [varg10], [varg11], [varg12], [varg13], [varg14], [varg15], [varg16], [varg17], [varg18], [varg19], [varg20], [varg21], [varg22], [varg23], [varg24], [varg25], [varg26], [varg27], [varg28], [varg29], [varg30])

наталкивает на мысль?
 

garrick

Lotus Team
26.10.2009
1 351
151
BIT
187
Вот как-то так должно быть.

Код:
Set app = CreateObject("Word.Application")
app.Visible = True
file1 = "C:\test1.docx"
file2 = "C:\test2.docx" 
call app.Documents.Open(file1)
call app.ActiveDocument.Compare(file2, 2)

Запускать не пробовал, но принцип преобразования VBA-LotusScript должен быть понятен.
 
  • Нравится
Реакции: xpro
X

xpro

Вот как-то так должно быть.

Код:
Set app = CreateObject("Word.Application")
app.Visible = True
file1 = "C:\test1.docx"
file2 = "C:\test2.docx"
call app.Documents.Open(file1)
call app.ActiveDocument.Compare(file2, 2)

Запускать не пробовал, но принцип преобразования VBA-LotusScript должен быть понятен.

Работает :applause::applause::applause::bravo: Спасибо.
Код:
Set app = CreateObject("Word.Application")
app.Visible = True
file1 = "C:\test1.docx"
file2 = "C:\test2.docx"
Call app.Documents.Open(file1)
Call app.ActiveDocuments.Compare(file2, file1)
 
Последнее редактирование:
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!