「DelphiからMS-EXCELのセルに高速に値を入れる」
Delphiからマイクロソフト社のエクセルのセルに多くの値をいれているのですが、
とても遅いです。高速にする方法はありませんか
回答
いったん、Delphiで配列変数に代入してから、セルに入力すれば速くなります。
ソース
procedure TForm1.Button1Click(Sender: TObject);
var Excel,WB,WS:variant;
v:array of array of Double;
r,c:integer;
begin
Excel := CreateOleObject('Excel.Application');
//MS-EXCELを表示する
Excel.Visible:= True;
//ブックを追加
WB:=Excel.Workbooks.Add;
//1つめのシートを変数に設定
WS:=WB.Sheets[1];
//配列の作成
setlength(v,20,100);
for r:=0 to 19 do
for c:=0 to 99 do
v[r,c]:=c+(r+1)*100;
//セルに値を入れる。
WS.Range[WS.Cells[1,1],WS.Cells[20,100]]:=variant(v);
//MS-Excelを終了する
Excel.Quit;
end;