Работа с макросами в документе 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.
|