2013-08-12 3 views
0

Я генерирую файлы Excel с помощью Интеграция данных Pentaho, и я хочу начать макрос автоматически после создания. До сих пор макрос запускается при открытии файла. Но это не очень хорошо: некоторые пользователи не имеют прав на выполнение макросов, и каждый раз, когда вы открываете файл, Excel спрашивает, хотите ли вы сохранить изменения.Выполнение VBA из оболочки

Мне интересно, есть ли способ выполнить макрос VBA в MS Excel из оболочки Windows. То, что я нашел этот код, чтобы открыть файл:

Shell "C:\Programme\Office2k\Office\EXCEL.EXE " & _"C:\...\MyExcelFile.xls" 

Но это не то, что я хочу. Я хочу запустить Macro ровно один раз и до того, как любой пользователь откроет его.

Есть ли у вас идеи?

+1

Считаете ли вы, с помощью VBScript? –

+0

вы не можете запустить макрос из закрытого файла в закрытом файле. Существует функция Workbook_Open(), которую вы могли бы изучить, но это просто альтернатива (требуется открытие). –

+0

mehow: Это то, что я делаю сейчас. Нехорошо. @ d-stroyer: Спасибо, VBScript может быть ответом. Я нашел здесь возможный способ [ссылка] (http://stackoverflow.com/questions/10232150/run-excel-macro-from-outside-excel-using-vbscript-from-command-line) – DennisH

ответ

1

Решение с VBScript выглядит следующим образом (Открыть, Сохранить, Закрыть без взаимодействия с пользователем):

Set objExcel = CreateObject("Excel.Application") 
Set objWorkbook = objExcel.Workbooks.Open("C:\dev\testo.xls") 

objExcel.Application.Run "testo.xls!test" 
objExcel.ActiveWorkbook.Save 
objExcel.ActiveWorkbook.Close 

objExcel.Application.Quit 
WScript.Quit 
Смежные вопросы