Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Компоненты Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 22.02.2012, 17:25   #1
WennY
Форумчанин
 
Регистрация: 17.01.2008
Сообщений: 236
По умолчанию Выполнить макрос в excel документе

Доброго времени суток. Нужно программно (не суть даже важно, как. Хоть через cmd) "вживить" макрос в excel файл и выполнить. И если с последним пунктом более-менее понятно, то вот с вживлением - беда Пытаюсь это делать так:
Код:
var
 * Ex_WBook, Ex_WSheet :OleVariant;
begin
 * ExcelApplication1.Connect;

 * ExcelApplication1.Workbooks.Open('e:\list.xlsx',
 * EmptyParam,EmptyParam,EmptyParam,
 * EmptyParam,EmptyParam,EmptyParam,
 * EmptyParam,EmptyParam,EmptyParam,
 * EmptyParam,EmptyParam,EmptyParam,
 * EmptyParam,EmptyParam,0);

 * ExcelApplication1.modules.add(emptyparam,emptyparam,1);
 * with ExcelWorkbook1.vbproject.vbcomponents.item('module1').codemodule do
 * * *begin
 * * *addfromstring('sub macro1()'+#13+
 * * * * * * * * * *'dim ch as chartobject');
 * end;
end;
но на строке
Код:
with ExcelWorkbook1.vbproject.vbcomponents.item('module1').codemodule do
компилятор мне сообщает:
Цитата:
exception class EOleSysError with message 'Класс не зарегистрирован'
Что не хватает ему? Спасибо

Последний раз редактировалось WennY; 22.02.2012 в 17:30.
WennY вне форума Ответить с цитированием
Старый 22.02.2012, 21:03   #2
WennY
Форумчанин
 
Регистрация: 17.01.2008
Сообщений: 236
По умолчанию

Вопрос решен. Внедрить макрос в документ можно так:
Цитата:
DBF
Sub DBF()
Dim oExcel
Set oExcel = CreateObject("Excel.Application")
oExcel.Application.Workbooks.Open ("C:\Users\WennY\Desktop\list.xlsx" )
oExcel.DisplayAlerts = False
oExcel.Application.DefaultFilePath = "C:\Users\WennY\Desktop\"
Code = "Sub CreateDBF()" & vbCrLf
Code = Code & "MsgBox ""test""" & vbCrLf
Code = Code & "End Sub" & vbCrLf
With oExcel.ActiveWorkbook.VBProject. _
VBComponents(1).CodeModule
NextLine = .CountOfLines + 1
.InsertLines NextLine, Code
End With
oExcel.ActiveWorkbook.Save
oExcel.Quit
End Sub
WennY вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Выполнить макрос/запрос без подтверждения? Alexnoir Microsoft Office Access 1 03.02.2011 15:36
Определение кол-ва строк в Excel документе )Игнат( Общие вопросы Delphi 1 27.12.2010 19:38
Выполнить код через макрос vbs segail Microsoft Office Excel 0 04.04.2010 19:25
Как выполнить макрос на защищенном листе Gennady_58 Microsoft Office Excel 3 18.04.2009 10:31