Excel Vba: Запуск макроса из командной строки

112357

Друзья, подскажите как запустить макрос экселя из командной строки применительнок файлу..
т.е в personal.xls есть макрос decode
и есть файл c:\1.xls
как мне осуществить все это?

mkrec

выдели этот макрос куда-нибудь еще в виде файла vbs. Винда загружает такие файлы сама, по двойному клику мышки.

0000

Создай фаил filename.vbs и запускай его

set objXL = WScript.CreateObject("Excel.Application")
objXL.Visible = False
objXL.Workbooks.Open ("personal.xls")
objXL.Workbooks.Open ("C:\1.xls")
objXL.Run("personal.xls!decode")
objXL.Save
objXL.quit

pstp

А в такие файлы параметры можно передавать как - то.. например.. я хочу этой прогой много файлов делать... но дело в том что нет пока названий фалой.. чтобы потом что-то типа в выполнить написать..
c:\proga.vbs "C:\new.xls"

0000

Не вопрос:
Вариант1 - батник + скрипт vbs

for %%i in (*.*) do (
vbs_file %%i
)

В vbs файле имя файла надо собирать из входящих параметров, например так

Dim strFileName
Set objArgs = WScript.Arguments
For I = 0 to objArgs.Count - 1
strFileName = strFileName + Chr(32) + objArgs(I)
Next

MsgBox strFileName

Вариант 2 - написать обход файлов непосредственно в vbs - что то в духе

set objFSO = CreateObject("Scripting.FileSystemObject")
objShell = WScript.CreateObject("WScript.Shell")
set objF = objFSO.GetFolder(objShell.CurrentDirectory)

set objFileSearch = objF.SubFolders
For Each objf1 in objFileSearch
strS = strS & "[" & objF1.name & "]" & Chr(10) & Chr(13)
Next

Set objFileSearch = objF.Files
For Each objf1 in objFileSearch
strS = strS & "<" & objF1.name & ">" & Chr(10) & Chr(13)
Next

WScript.echo strS
Оставить комментарий
Имя или ник:
Комментарий: