Mam's WebSite
建築CGパース住宅CGパース

Mamの覚書Q&A検索

トップページMamの覚書Q&A検索Delphi(Excel)⇒Q&A


大項目:「 Delphi 」 - 中項目:「 Excel 」

「 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;


Mam's WebSite