我正在使用以下 Delphi OLE 代码连接到 Excel 应用程序:
var
ClassID: TCLSID;
Unknown: IUnknown;
begin
ClassID := ProgIDToClassID('Excel.Application');
OleCheck(GetActiveObject(ClassID, nil, Unknown));
OleCheck(Unknown.QueryInterface(IDispatch, Result));
end;
此代码适用于许多 Excel 安装,但现在它针对 Excel-365 运行并提供Operation unavailable消息。我还没有重新创建测试环境来调试此代码,但是,一般来说 - Excel 和 Excel-365 之间关于 Delphi 如何发生 OLE 交互性有什么区别吗?我可以对 Excel 和 Excel-365 使用相同的程序 ID、类 ID、Delphi 包装器对象吗?或者 Excel 365 有不同的 ProgID、ClassID?