Задать вопрос эксперту |
Работа с макросами в документе MSEXCEL через Delphi
Фрагмент кода, выполняющий следующие функции:
- создает новую книгу Excel
- создает новый макрос в ней
- запускает макрос на выполнение
- сохраняет книгу
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes,
Graphics, Controls, Forms,
Dialogs, ComObj, StdCtrls, ExcelXP, OleServer;
type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
Excel, WorkBook, Sheet: variant;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var
temp: WideString;
begin
Excel:= CreateOleObject('Excel.application');
Excel.visible:= True;
WorkBook:= Excel.WorkBooks.Add;
WorkBook.SaveAs('c:\test.xls');
Excel.modules.add(emptyparam,emptyparam,1);
// создание строк макроса
temp:= 'sub macro1()'+ #13;
temp:= temp + 'dim a as integer' + #13;
temp:= temp + 'ThisWorkBook.Sheets("Лист1").Range("a1") = 10'
+ #13;
temp:= temp + 'ThisWorkBook.Sheets("Лист1").Range("b1") = 30'
+ #13;
temp:= temp + 'end sub';
WorkBook.vbproject.vbcomponents.item(1).codemodule.addfromstring(temp);
Excel.run('macro1'); // запуск макроса на выполнение
WorkBook.Save;
WorkBook.Close;
Excel.Quit;
Excel:= null;
end;
end.