从 VBA 实现 IRibbonExtensibility_GetCustomUI

问题描述

我一直在尝试从 VBA 编辑器操作 Outlook 功能区,即 QAT 图标。 找到对 IRibbonExtensibility 的引用,它实际上在类模块中被识别:

let
    Source = Json.Document(Web.Contents("https://data.cms.gov/data-api/v1/dataset/9138d25a-5d85-4a12-b3c9-070e544486db/data?filter[NPI]=1669578803")),#"Converted to Table" = Table.FromList(Source,Splitter.SplitBynothing(),null,ExtraValues.Error),#"Expanded Column1" = Table.ExpandRecordColumn(#"Converted to Table","Column1",{"NPI","PECOS_ASCT_CNTL_ID","ENRLMT_ID","PROVIDER_TYPE_CD","PROVIDER_TYPE_DESC","STATE_CD","FirsT_NAME","MDL_NAME","LAST_NAME","ORG_NAME","GNDR_SW"},"GNDR_SW"})
in
    #"Expanded Column1"

但是,我无法实例化此接口:

Implements IRibbonExtensibility Public Function IRibbonExtensibility_GetCustomUI(ByVal RibbonID As String) As String 'Must return XML End Function 添加代码会导致 Outlook 启动错误

使用此代码实例化类模块会将 IribbonExtensability 成员呈现为 nothing

这仅适用于 COM 插件吗?还有其他方向吗?

解决方法

是的,对于 Outlook,Fluent UI 自定义仅可通过 COM 加载项使用。

在以下系列文章中阅读有关 Fluent UI(又名 Ribbon UI)的更多信息: