Excelの値をStringGridへ読込み

下記コードを実行すると、エクセルかへ入力されている値を読込めます。
実行環境にエクセルは必須です。
使用コンポーネント
TButton TExcelApplication TExcelWorksheet TStringGrid


procedure
TForm1.Button1Click(Sender: TObject);
var
  i: Integer;
  FName: Strings;
begin
  //エクセルのパスつきファイル名を格納
  FName := 'c:\test.xls';

  ExcelApplication1.Connect;
  ExcelApplication1.Workbooks.Open(FName,EmptyParam,True,EmptyParam,
    EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,
    EmptyParam,EmptyParam,EmptyParam,EmptyParam,0);
  ExcelWorksheet1.ConnectTo(ExcelApplication1.ActiveWorkbook.ActiveSheet
    as _WorkSheet);
  try
    //下の2行は同じ動作になります。(理由は聞かないでください)
    StringGrid1.Cells[Col,Row] := ExcelWorksheet1.Range['C5','C5'].Value;
    StringGrid1.Cells[Col,Row] := ExcelWorksheet1.Cells.Item[Row,Col].Value;

    ExcelApplication1.ActiveWorkbook.Close(False,ExtractFileName(FName)
      , EmptyParam, 0); //保存しないで閉じる
  finally
    ExcelWorksheet1.Disconnect;
    ExcelApplication1.Disconnect;
  end;
end;