Я ищу, чтобы преобразовать VBScript в VBA и запустить его из модуля Excel. В прошлом я перевел VB на эквивалент VBA, но на этот раз у меня небольшие проблемы. Я сделал несколько попыток (возможно, много попыток) попытаться перевести это сам без успеха.Перевод сценария VBS на VBA и выполнение через Excel
Я искал Google, стек и другие форумы, которые я нашел в Google, и не имел большого успеха в некоторых примерах, которые я нашел.
Возможно ли выполнить нижеследующее из модуля Excel? (Как замечание, я пытаюсь напрямую взаимодействовать с приложением. У меня есть другие модули вне этого скрипта, которые делают это только с помощью OLE Automation и ссылаются на соответствующие ссылки COM/библиотеки). Однако в приложении отсутствует обширная документация, а методы и свойства, доступные мне через указанные DLL, довольно ограничены.
И так, это мое обходное решение (хотя и не предпочтительное), как это ни ужасно, как кажется. В настоящее время у меня есть BAT-файл, который запускает VBScript, и он отлично работает. Теперь мне просто нужно запустить код из модуля. Я попытался вставить скрипт в качестве объекта и запустить макрос, который выполняет его из Excel, но я получаю подсказки безопасности (и это не весело).
Любая помощь очень ценится!
Set WshShell = WScript.CreateObject("WScript.Shell")
WScript.Sleep 1000
WshShell.AppActivate "Average Terminal Emulator"
WScript.Sleep 1000
WshShell.SendKeys "%"
WshShell.SendKeys "I"
WshShell.SendKeys "Y"
WshShell.SendKeys "S"
WScript.Sleep 1000
WshShell.AppActivate "Average Terminal Emulator"
WScript.Sleep 1000
WshShell.SendKeys "0"
WshShell.SendKeys "{TAB}"
WshShell.SendKeys "M"
WshShell.SendKeys "{TAB}"
WshShell.SendKeys "C"
WshShell.SendKeys "{TAB}"
WScript.Sleep 1000
WshShell.SendKeys "{ENTER}"
Я использовал 'SenKeys' в прошлом, и просто примечание - OP, возможно, потребуется добавить пару« Application.Wait »между некоторыми из них. Я заметил, что, поскольку Excel работает через макрос так быстро, как может, иногда программа, которую манипулирует 'SendKeys', не может идти в ногу. – BruceWayne
@BruceWayne - Это хороший момент. 'SendKeys' почти никогда не является лучшим решением, поэтому, если вы собираетесь его использовать, вам нужно будет сыграть с ним и настроить время ожидания между нажатиями клавиш. – Bond
Согласен - при запуске моего макроса 'SendKeys', я даже не * смотрю * на компьютере, когда запускаю' SendKeys', потому что он настолько искушен. – BruceWayne