在 delphi 中创建 excel CustomTaskPane(加载项)

Create excel CustomTaskPane in delphi (add-in)

如何在不使用 add-in express 的情况下使用 Delphi 创建简单的自定义任务窗格并将自定义任务窗格添加到 excel。

任务窗格将有 1 个按钮(关闭)

procedure TMyAddin.OnConnection(const Application: IDispatch; ConnectMode: ext_ConnectMode; const AddInInst: IDispatch; var custom: PSafeArray);
var FApp:ExcelApplication;
CTP:TCustomTaskPane;
begin
...
  CTP:=TCustomTaskPane.Create(Self);
//?
  CTP.Visible:=True;
end;

使用 XE7,office2010.pas,excel2010.pas

自己设法做到了。 对于遇到同样问题的任何人,请在此处发布解决方案

  • 创建加载项
  • 将 ActiveX 表单添加到加载项项目
  • 将以下代码添加到插件 .pas 文件
procedure TmyAddin.CTPFactoryAvailable(const CTPFactoryInst: ICTPFactory); safecall;
Var 
    CTP: _CustomTaskPane;
//  NP: TActiveXformClass;
begin   
    CTP:= CTPFactoryInst.CreateCTP('<replace with add-in name>.<replace with activeXform name>', 'pane caption', EmptyParam);
//  NP := TNavigationPane(ctp.ContentControl);
    CTP.Visible := true;
end;