Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Запуск макроса Excel из Visual FoxPro / 5 сообщений из 5, страница 1 из 1
07.08.2007, 10:33
    #34709664
Solver
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запуск макроса Excel из Visual FoxPro
Как запустить из Foxpro Excel так, чтобы сразу запускался макрос?
Пробовал использовать: oExcel.Run("MyMacros",m.file), но не знаю:
1) что означает параметр m.file;
2) где в Excel должен быть записан марос: (в PERSONAL.XLS или еще где)?
3) если в в PERSONAL.XLS, то как изменить записанный в PERSONAL.XLS макрос? Excel ругается:
"Изменить макрос в скрытой книге невозможно. Закройте все документы и выберите команду 'Показать' в меню 'Файл'". Да нет там такой команды!
Заранее благодарен.
...
Рейтинг: 0 / 0
08.08.2007, 07:39
    #34712654
denis_viktorovich
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запуск макроса Excel из Visual FoxPro
У меня во так работает
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)


Я одно время пристрастился программно заливать макросы в книгу (свежесозданную и наполненную данными), но говорят это неправильный подход (и антивирусник ругается частенько на такие манипуляции). Теперь стараюсь только шаблоны использовать и макросы создавать в шаблонах.
...
Рейтинг: 0 / 0
08.08.2007, 09:50
    #34712808
Solver
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запуск макроса Excel из Visual FoxPro
Ув. denis viktorovich!
Тогда еще вопрос: как указывать имя макроса (приведите, пожалуйста, конкретный пример).
Спасибо.
...
Рейтинг: 0 / 0
08.08.2007, 12:04
    #34713346
Solver
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запуск макроса Excel из Visual FoxPro
Ув. denis viktorovich!
А можно ли получить список уже существующих макросов?
Что-то вроде этого: ThisWorkbook.VBProject.VBComponents(n).Name
Спасибо.
...
Рейтинг: 0 / 0
08.08.2007, 14:13
    #34713961
denis_viktorovich
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запуск макроса Excel из Visual FoxPro
Вот из реальной проги пример. Вставляется некий макрос для обработки отчета и запускается.

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")
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Запуск макроса Excel из Visual FoxPro / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]