Цитата:
Сообщение от Kailon
Напиши макрос в Excel, а из Delphi просто вызывай его:
Код:
Excel.Application.Run('NameMacros');
|
Там есть особенность связанная с безопасностью - по умолчанию в Excel запрещено выполнение макросов...
Нет, если конечно нужно лично под себя, то можно просто у себя на компьютере в Excel'е разрешить выполнение макросов и всё.
Если же нужно чтобы работало везде, то помнится когда-то для какой-то задачи я в реестре включала разрешение выполнять макросы, потом запускала Excel, выполняла макрос и после этого восстанавливала в реестре прежнее значение. Но в конце концов решила просто переписать макрос на Delphi и не морочить себе голову.
Цитата:
Сообщение от cadil
Помогите, пожалуйста, записать в Delphi следующий макрос VB (поиск записи bbbb в таблице Эксель):
Код:
Sub find_1()
Range("A1").Select
Cells.Find(What:="bbbb", After:=ActiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False).Activate
End Sub
|
Это всё элементарно переводится на Delphi:
Код:
procedure TForm1.Button1Click(Sender: TObject);
begin
ExcelApplication1.Connect;
ExcelApplication1.Visible[LOCALE_USER_DEFAULT]:=True;
ExcelApplication1.Workbooks.Open('Excel1.xls', False, False, EmptyParam, EmptyParam, EmptyParam,
EmptyParam, EmptyParam, EmptyParam, EmptyParam,
EmptyParam, EmptyParam, EmptyParam, LOCALE_USER_DEFAULT);
ExcelApplication1.Range['A1', EmptyParam].Select;
ExcelApplication1.Cells.Find('bbbb', ExcelApplication1.ActiveCell, xlFormulas, xlPart, xlByRows,
xlNext, False, False).Activate;
end;
ExcelApplication1 - это стандартная компонента Delphi - должна быть на вкладке "Servers".