0 / 0 / 0
Регистрация: 29.11.2013
Сообщений: 7
|
|
1 | |
Как перевести vba в vbs или exe31.03.2014, 22:02. Показов 5130. Ответов 3
Метки нет (Все метки)
Друзья, есть макрос, никоим образом не использующий книгу Excel. Работает с внешним файлом - следит за его изменением, при наличии нужных изменений запускает внешний исполняемый файл. Вопрос такой - каким образом можно этот vba отвязать от экселя, чтобы он работал самостоятельно, без запуска Excel.
Если просто скопировать код в .vbs, то ошибок море (vbs не поддерживает львиную долю того, что есть в vba), если же делать исполняемый файл через visual studio, то, судя по всему, тоже чуть ли не полностью придется переписывать. Подскажите, хотя бы в каком направлении копать.
0
|
31.03.2014, 22:02 | |
Ответы с готовыми решениями:
3
Как отправить/получить файл на ftp из VBA или VBS Создание бинарного файла из vbs / Как создать exe файл из vbs Cmd перевести в js или vbs Запуск .exe или .vbs файла из asp скрипта |
15151 / 6424 / 1731
Регистрация: 24.09.2011
Сообщений: 9,999
|
|
31.03.2014, 22:11 | 2 |
Чтобы что-либо подсказать, надо видеть макрос.
0
|
0 / 0 / 0
Регистрация: 29.11.2013
Сообщений: 7
|
|
31.03.2014, 22:23 [ТС] | 3 |
Собственно, макрос, который нужно переделать в vbs:
sFileName = Year(Date) & Right("0" & Month(Date), 2) & Right("0" & Day(Date), 2) & ".log" sFileName = "C:\grand\software\" & sFileName MyLocation = 0 'Открываем для чтения файл логов за сегодняшний день Open sFileName For Binary Access Read As #1 'Считываем существующий файл логов: Do While MyLocation < LOF(1) Line Input #1, textline MyLocation = Loc(1) Loop 'Бесконечный цикл, парсящий, ожидая появления искомой строки: Do On Error Resume Next 'изменяем обработку ошибок, чтобы игнорировать ошибку чтения конца файла. Line Input #1, textline 'Если это искомая строка вида 10:04:41[interface] <c t="tp" i="34"></c> If Right(Left(textline, 33), 25) = "[interface] <c t=" & Chr(34) & "tp" & Chr(34) & " i=" & Chr(34) And _ Right(textline, 6) = Chr(34) & "></c>" Then 'Запускаем программу: Set WshShell = CreateObject("WScript.Shell") WshShell.Run "C:\grand\software\grand.exe", 1, False End If On Error GoTo 0 textline = "" Loop Close #1
0
|
15151 / 6424 / 1731
Регистрация: 24.09.2011
Сообщений: 9,999
|
||||||
01.04.2014, 01:34 | 4 | |||||
Перевести на VBS несложно (судя по 1-й строке код изначально был в VBS, т.к. на VB/VBA проще было бы написать sFileName = Format(Date, "YYYYMMDD.log") ).
Чтобы закончить работу скрипта, прибейте процесс wscript.exe в Диспетчере задач.
0
|
01.04.2014, 01:34 | |
01.04.2014, 01:34 | |
Помогаю со студенческими работами здесь
4
Как запустить скрипт VBS из VBA Excel? Как вызвать VBA макрос с параметром из VBS скрипта? Как на vbs или bat или cmd изменить размер окна браузера? Как запустить VBS- или JS-скрипт через Task Sheduler или GPO? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |