是否有可能创建使用在Microsoft Access的Interop库以类似的方式为Word,Excel或PowerPoint新宏使用C#? 在其他应用程序,您可以访问Microsoft.Vbe.Interop._VBComponent
,它允许你注入新的宏,通过Document
, Worksheet
或Presentation
类。 它看起来并不像Access有类似这样的东西。 Access有一个AllMacros
名单,但它似乎是只读的。 我知道如何执行宏,一旦它在这个项目,但我需要能够动态地添加宏。 我将不胜感激任何人可以点我在正确的方向。
Answer 1:
从answers.microsoft.com措施:
在Access宏是一个特殊的数据库对象,在其他Office应用程序不像宏简直是无参数的VBA程序。 据我知道你不能以编程方式创建Access宏。 -HansV MVP(2011年4月27日)
有张贴在另一个回答同样的问题 ,说你可以创建一个使用VB扩展库的新代码/ VBA对象。
Answer 2:
由于HK1的回答,我能够做的正是我需要的。 我想后我的代码,因为几乎没有任何地方的信息如何做到这一点。 我将离开HK1的帖子标记为答案,因为他是什么导致我这个。
编程加入VB模块经由互操作MS-访问
try
{
Microsoft.Office.Interop.Access.Application accessApp = new Microsoft.Office.Interop.Access.Application();
accessApp.Visible = true;
accessApp.OpenCurrentDatabase(filePath);
// Get the active VBProject item
VBProject project = accessApp.VBE.VBProjects.Item(1);
VBComponent module = project.VBComponents.Add(vbext_ComponentType.vbext_ct_StdModule);
module.CodeModule.AddFromString(script);
}
catch (Exception ex)
{
// Trust or the VBA Project Module has not been enabled.
}
文章来源: Create a macro for Microsoft Access via Interop