如何在c#VSTO中添加来自XLAM的现有VBA代码

我有一个与VBA代码在其中的xlam通过名为“组1”的function区组和公开的function,通过名为“组2”的function区组公开function。

我想将VBA文件的一些function移出到C#中。

a)我可以很容易地将VBA“包含”在C#中,所以我不必将其全部迁移到c#中去? b)我可以创buildfunction区组的项目/button在C#中添加,但有代码引用回到.xlam文件?

我已经看到这个链接( http://msdn.microsoft.com/en-us/library/dd465290(VS.100).aspx )这似乎谈论发布多个解决scheme,我不认为是我'之后 – 虽然这种方法可以用于从VSTO应用程序中部署.xlam(并且至less简化了包的部署?

我可以很容易地将VBA包含在C#中,所以我不需要将它们全部迁移到C#中。

简单的答案是不,你不能。

您需要在VSTO加载项( 假设它是应用程序加载项 )中重新编写C#( 或VB.NET,如果您的“Group2”加载项已经基于VB.NET )的逻辑 。 不要害怕,它应该是有趣和容易+你会学到C#的基础知识,而这样做。 如果你对VBA非常好,那么对你来说是一个好处,因为你很可能已经了解了Excel对象模型。

我可以创buildfunction区组项目/button在C#中添加,但有代码引用回到.xlam文件?

不可以。如果您打算添加或修改仅包含C#的function区,您可能需要查看自定义用户界面编辑器

你可以做的是在Visual Studio中devise自定义function区,然后将XML复制并粘贴到自定义用户界面编辑器中,以获得几乎相同的外观。 你用Visual Studio获得的优势是智能的!

在“自定义用户界面编辑器”中创build一个function区,可以查看Ron De Bruin的“wesite”