Я тоже считаю, что проще. Но медленно. Очень. Таскает все данные через DDE (т.е. всякие WM_... сообщения)... Это, так, кстати..
Код:

uses ... ComObj, ExcelNN...;
// где ExcelNN - Excel97 или Excel2000
const
xlLCID = LOCALE_USER_DEFAULT;
procedure TForm1.Button1Click(Sender: TObject);
var Excel : _Application;
Workbook : _Workbook;
begin
Excel := CreateComObject(CLASS_ExcelApplication) as _Application;
Excel.Workbooks.Add(EmptyParam, xlLCID);
Excel.ActiveCell.Value := 'Hello!';
Excel.Visible[xlLCID]:=True;
end;
Думаю, что в случае ошибки ты точно увидишь проблему.
А что программа в '98 выдает?
[s]Исправлено:
Netscaper, 3:20 28-10-2004[/s]