Показать сообщение отдельно
  #7  
Старый 13.06.2012, 03:04
MiraLaklamon MiraLaklamon вне форума
Новичок
 
Регистрация: 07.06.2012
Сообщения: 59
Версия Delphi: 6, 7
Репутация: 10
По умолчанию

Цитата:
Сообщение от 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".
Ответить с цитированием