На страницу разработчика

Лента новостей сайта

Задать вопрос эксперту

Регистрация на RFPro

 

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

 

Hosted by uCoz