是否可以使用 Microsoft Access 中的 Interop 库以类似于 Word、Excel 或 PowerPoint 的方式使用 C# 创建新宏?在其他应用程序中,您可以 Access Microsoft.Vbe.Interop._VBComponent
,它允许您通过 Document
、Worksheet
注入(inject)新的宏> 或 Presentation
类。看起来 Access 没有与此类似的东西。 Access 有一个 AllMacros
列表,但它似乎是只读的。我知道如何在项目中执行宏,但我需要能够动态添加宏。如果有人能为我指明正确的方向,我将不胜感激。
最佳答案
由于 HK1 的回答,我能够完全按照我的需要去做。我想发布我的代码,因为几乎没有关于如何执行此操作的信息。我会将 HK1 的帖子标记为答案,因为他是我的导火索。
通过互操作以编程方式将 VB 模块添加到 MS-Access
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.
}
关于c# - 通过 Interop 为 Microsoft Access 创建宏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13020923/