Also für Excel benutze ich folgenden Code:
Delphi-Quellcode:
function TExcelServer.GetVersion: RVersion;
var
s : string;
bWaitForFinish : boolean;
begin
bWaitForFinish := true;
while bWaitForFinish do
begin
try
s := ExcelApplication.Version[FLCID];
bWaitForFinish := false;
except
end;
end;
Result.Major := StrToInt(Copy(s, 0, Pos('.', s) - 1));
Result.Minor := StrToInt(Copy(s, Pos('.', s) + 1, Length(s)));
end;
Danach entscheide ich mich z.T. für verschiedene Vorgehensweisen, aber im Grunde benutze ich eine (selbst erweitere) Excel97 TypeLibrary, also grundsolides Excel 97. Damit bin ich bis jetzt am besten gefahren.
Das gilt für Word genauso. Und NewDoc(''); kann da das Problem schon sein.
Hier noch RVersion:
Delphi-Quellcode:
type
RVersion = record
{
Excel
1.0 = Excel 1.0
2.0 = Excel 2.0
2.2 = Excel 2.2
3.0 = Excel 3.0
4.0 = Excel 4.0
5.0 = Excel 5.0
6.0 = -
7.0 = Excel 95
8.0 = Excel 97 // ab hier unterstützt
9.0 = Excel 2000
10.0 = Excel 2002 (XP)
11.0 = Excel 2003
12.0 = Excel 2007 // unterstützt außer TExcelServer.CustomChartSet
}
{
Word
??? nichts zu finden
}
Major,
Minor : integer;
end;