Запуск макроса Excel



  • Имеется постоянно открытый файл экселя с макросом, который находится в режиме ожидания. При поступлении команды от BAS макрос должен запуститься. Возможно ли такое реализовать?



  • @smeckoi77 Вряд ли, лучше написать скрипт, который сделает работу этого макроса.



  • @UserTrue Суть в том, что файл экселя должен быть всегда открыт и BAS должен что то делать в уже открытом файле.



  • @smeckoi77 said in Запуск макроса Excel:

    @UserTrue Суть в том, что файл экселя должен быть всегда открыт и BAS должен что то делать в уже открытом файле.

    Может быть через COM объект посредством например vbs скрипта получиться что-то подобное



  • @UserTrue Думал уже об vbs скрипте, буду пробовать. Может есть ещё какие альтернативные решения?



  • @smeckoi77 said in Запуск макроса Excel:

    Имеется постоянно открытый файл экселя с макросом, который находится в режиме ожидания. При поступлении команды от BAS макрос должен запуститься. Возможно ли такое реализовать?

    Парсите необходимые данные через BAS в файл, а макросом в excel на VBA смотрите дату изменения файла
    https://docs.microsoft.com/ru-ru/office/vba/language/reference/user-interface-help/filedatetime-function

    как только файл изменился - читайте его и выполняйте необходимые действия



  • @Fox Файл Эксель стоит, никакой макрос в нем не выполняется. Он не может проверить дату файла. Нужна какая-то команда из BAS, запускающая макрос.



  • @smeckoi77 said in Запуск макроса Excel:

    @Fox Файл Эксель стоит, никакой макрос в нем не выполняется. Он не может проверить дату файла. Нужна какая-то команда из BAS, запускающая макрос.

    Макросы в экселе пишутся на vba, выше я скинул ссылку на метод указывающий дату и время создания или последнего изменения файла. Поместите свой макрос в цикл while и проверяйте дату изменения файла.



  • @Fox Но для того, чтобы проверять дату файла, нужно запустить ещё какой то макрос и файл экселя будет постоянно занят выполнением этого макроса. А мне нужно чтобы файл был свободен и запускался каким либо импульсом из вне.



  • @smeckoi77 здесь вот есть решения как запустить макрос в эксель из командной строки https://stackoverflow.com/questions/2050505/way-to-run-excel-macros-from-command-line-or-batch-file Т.е. можешь сделать батник как там описано и запустить через Bas



  • @UserTrue Получилось! Записью в файл передал текст скрипта vbs, а следующим действием запустил процесс vbs. Макрос запустился. Только вот один баг, не передаёт русские буквы, меняет на кракозябры. А так довольно простое решение, альтернатива node js.


Log in to reply