Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / FoxPro, Visual FoxPro Новый топик    Ответить
 Запуск макроса Excel из Visual FoxPro  [new]
Solver
Member

Откуда:
Сообщений: 30
Как запустить из Foxpro Excel так, чтобы сразу запускался макрос?
Пробовал использовать: oExcel.Run("MyMacros",m.file), но не знаю:
1) что означает параметр m.file;
2) где в Excel должен быть записан марос: (в PERSONAL.XLS или еще где)?
3) если в в PERSONAL.XLS, то как изменить записанный в PERSONAL.XLS макрос? Excel ругается:
"Изменить макрос в скрытой книге невозможно. Закройте все документы и выберите команду 'Показать' в меню 'Файл'". Да нет там такой команды!
Заранее благодарен.
7 авг 07, 10:33    [4487974]     Ответить | Цитировать Сообщить модератору
 Re: Запуск макроса Excel из Visual FoxPro  [new]
denis_viktorovich
Member

Откуда: Екб
Сообщений: 1212
У меня во так работает
oExcel.Run("Имя макроса")

Судя по хелпу, когда метод Run относится к Application то можно указать имя макроса и аргументы (если надо):

Хелп Оффиса
Runs a macro or calls a function. This can be used to run a macro written in Visual Basic or the Microsoft Excel macro language, or to run a function in a DLL or XLL.

expression.Run(Macro, Arg1, Arg2, Arg3, Arg4, Arg5, Arg6, Arg7, Arg8, Arg9, Arg10, Arg11, Arg12, Arg13, Arg14, Arg15, Arg16, Arg17, Arg18, Arg19, Arg20, Arg21, Arg22, Arg23, Arg24, Arg25, Arg26, Arg27, Arg28, Arg29, Arg30)


Я одно время пристрастился программно заливать макросы в книгу (свежесозданную и наполненную данными), но говорят это неправильный подход (и антивирусник ругается частенько на такие манипуляции). Теперь стараюсь только шаблоны использовать и макросы создавать в шаблонах.
8 авг 07, 07:39    [4493781]     Ответить | Цитировать Сообщить модератору
 Re: Запуск макроса Excel из Visual FoxPro  [new]
Solver
Member

Откуда:
Сообщений: 30
Ув. denis viktorovich!
Тогда еще вопрос: как указывать имя макроса (приведите, пожалуйста, конкретный пример).
Спасибо.
8 авг 07, 09:50    [4494113]     Ответить | Цитировать Сообщить модератору
 Re: Запуск макроса Excel из Visual FoxPro  [new]
Solver
Member

Откуда:
Сообщений: 30
Ув. denis viktorovich!
А можно ли получить список уже существующих макросов?
Что-то вроде этого: ThisWorkbook.VBProject.VBComponents(n).Name
Спасибо.
8 авг 07, 12:04    [4495259]     Ответить | Цитировать Сообщить модератору
 Re: Запуск макроса Excel из Visual FoxPro  [new]
denis_viktorovich
Member

Откуда: Екб
Сообщений: 1212
Вот из реальной проги пример. Вставляется некий макрос для обработки отчета и запускается.

exp1=CREATEOBJECT('Excel.Application')
exp1.Visible=.t.
exp1.DisplayAlerts=.f.
exp1.Workbooks.Open('....Имя файла...')

* этот кусок вставляет текст макроса (закоммент)
*s1="Sub ObrabItog()"+chr(13)+;
*"Selection.Subtotal GroupBy:=2, Function:=xlSum, "+;
*"TotalList:=Array(7, 10), "+;&&, 10, 11, 12, 13, 14, 15, 16, 17, 18
*"Replace:=True, PageBreaks:=False, SummaryBelowData:=True"+CHR(13)+;
*""+CHR(13)+;
*""+CHR(13)+;
*""+CHR(13)+;
*"End Sub"
*exp1.AutomationSecurity=3
*exp1.VBE.ActiveVBProject.VBComponents.Add(1)
*exp1.VBE.ActiveVBProject.VBComponents.Add(1).CodeModule.AddFromString(s1)

exp1.Run("ObrabItog")
8 авг 07, 14:13    [4496391]     Ответить | Цитировать Сообщить модератору
Все форумы / FoxPro, Visual FoxPro Ответить