在宏中调用Excel加载项功能

用户5590

我正在为Excel 2013开发外接程序,并在Excel外接程序中创建了一个功能,如下所示

  public string ExcelReturnString()
    {
        return "This is the string: hi";
    }

我使用下面的代码来调用该函数,但是会引发错误。

Application.Run(ExcelReturnString)

如何在宏中调用外接程序功能?

火腿骨

这是最直接的事情,但这是完成任务的方式。我将尽可能地明确,因为在尝试进行此操作的前两三次中,我错过了很多。

首先,在创建宿主类时,ExcelReturnString()需要使用具有以下属性的接口装饰类,然后为要公开的每个方法标记属性。为了这个示例,我制作了附加类“ TestExcelAddIn”:

using System.Data;
using System.Runtime.InteropServices;
using Excel = Microsoft.Office.Interop.Excel;

namespace TestExcelAddIn
{
    [ComVisible(true)]
    [InterfaceType(ComInterfaceType.InterfaceIsDual)]
    public interface IStringGetter
    {
        string ExcelReturnString();
    }

    [ComVisible(true)]
    [ClassInterface(ClassInterfaceType.None)]
    public class StringGetter : IStringGetter
    {
        public string ExcelReturnString()
        {
            return "This is the string: hi";
        }
    }
}

然后,在与项目中的“ Excel”关联的主类中,您必须RequestComAddInAutomationService按以下方式进行覆盖同样,我包括所有内容,因此您知道哪个班级是哪个班级(初次阅读时没有)。

namespace TestExcelAddIn
{
    public partial class ExcelTest
    {
        private StringGetter myAddIn;

        protected override object RequestComAddInAutomationService()
        {
            if (myAddIn == null)
                myAddIn = new StringGetter();

            return myAddIn;
        }

        private void ThisAddIn_Startup(object sender, System.EventArgs e)
        {
        }

        private void ThisAddIn_Shutdown(object sender, System.EventArgs e)
        {
        }

        #region VSTO generated code
        #endregion
    }
}

现在,VBA准备以以下方式使用此方法:

Sub Test()

    Dim addin As Office.COMAddIn
    Dim automationObject As Object
    Dim returnString As String

    Set addin = Application.COMAddIns("TestExcelAddIn")
    Set automationObject = addin.Object

    returnString = automationObject.ExcelReturnString

End Sub

您可以给我100年的时间来解决这个问题,而我不会。实际上,将其上的Rosetta石头归功于MSDN:

https://msdn.microsoft.com/zh-CN/library/bb608621.aspx?f=255&MSPPError=-2147217396

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

从宏调用Excel VB加载项

来自分类Dev

Excel宏未显示为加载项

来自分类Dev

功能区中的Excel 2007加载项不起作用

来自分类Dev

从功能区按钮调用Excel宏

来自分类Dev

从另一个工作簿(加载项)中调用专用宏/ UDF

来自分类Dev

在Excel 2013中,Visual Basic(VBA),宏和加载项工具在哪里?

来自分类Dev

加载项命令功能区显示在Excel Online中,但在Excel for Windows中不显示

来自分类Dev

如何将功能区按钮连接到Excel加载项中定义的功能?

来自分类Dev

从Excel功能区运行Excel加载宏时出错

来自分类Dev

Excel加载项从ActiveWorkbook调用子例程

来自分类Dev

Excel加载项从ActiveWorkbook调用子例程

来自分类Dev

Invantive Control for Excel加载项已从Microsoft Excel的功能区中消失

来自分类Dev

从 Outlook 中的加载项调用自定义加载项

来自分类Dev

功能区中的VBA运行加载项

来自分类Dev

VBA-MS Excel加载项中的自定义功能区选项卡

来自分类Dev

在VBA中的excel的特定实例中调用excel宏

来自分类Dev

如何为我的 excel 加载项设置功能区图标

来自分类Dev

在Excel加载项中包含“ ThisWorkbook”代码

来自分类Dev

在C#中打开Excel加载项

来自分类Dev

在Excel中的vbasic宏中使用ATL库的功能

来自分类Dev

插入功能在Excel宏VBA中给出1004错误

来自分类Dev

在UserControl for Excel加载项(VB)中动态加载XAML

来自分类Dev

如何从xll加载项调用无法注册到功能向导的功能?

来自分类Dev

从其他工作簿中调用Excel宏

来自分类Dev

如何部署Excel XLL加载项并在Excel中自动注册该加载项

来自分类Dev

Google表格加载项中的自定义功能

来自分类Dev

Word加载项未在功能区中创建按钮

来自分类Dev

Google表格加载项中的自定义功能

来自分类Dev

仍在安装时从功能区中消失的 Office 加载项

Related 相关文章

  1. 1

    从宏调用Excel VB加载项

  2. 2

    Excel宏未显示为加载项

  3. 3

    功能区中的Excel 2007加载项不起作用

  4. 4

    从功能区按钮调用Excel宏

  5. 5

    从另一个工作簿(加载项)中调用专用宏/ UDF

  6. 6

    在Excel 2013中,Visual Basic(VBA),宏和加载项工具在哪里?

  7. 7

    加载项命令功能区显示在Excel Online中,但在Excel for Windows中不显示

  8. 8

    如何将功能区按钮连接到Excel加载项中定义的功能?

  9. 9

    从Excel功能区运行Excel加载宏时出错

  10. 10

    Excel加载项从ActiveWorkbook调用子例程

  11. 11

    Excel加载项从ActiveWorkbook调用子例程

  12. 12

    Invantive Control for Excel加载项已从Microsoft Excel的功能区中消失

  13. 13

    从 Outlook 中的加载项调用自定义加载项

  14. 14

    功能区中的VBA运行加载项

  15. 15

    VBA-MS Excel加载项中的自定义功能区选项卡

  16. 16

    在VBA中的excel的特定实例中调用excel宏

  17. 17

    如何为我的 excel 加载项设置功能区图标

  18. 18

    在Excel加载项中包含“ ThisWorkbook”代码

  19. 19

    在C#中打开Excel加载项

  20. 20

    在Excel中的vbasic宏中使用ATL库的功能

  21. 21

    插入功能在Excel宏VBA中给出1004错误

  22. 22

    在UserControl for Excel加载项(VB)中动态加载XAML

  23. 23

    如何从xll加载项调用无法注册到功能向导的功能?

  24. 24

    从其他工作簿中调用Excel宏

  25. 25

    如何部署Excel XLL加载项并在Excel中自动注册该加载项

  26. 26

    Google表格加载项中的自定义功能

  27. 27

    Word加载项未在功能区中创建按钮

  28. 28

    Google表格加载项中的自定义功能

  29. 29

    仍在安装时从功能区中消失的 Office 加载项

热门标签

归档