我编写了一个供 MSAccess 使用的 C# COM 对象。它对我的目的来说工作得很好,但我想在创建新对象时进行版本检查,并通过即时窗口通知 VBA 程序员有新版本可用。
这可能吗?我已经尝试过 Debug.Print 和 Console.WriteLine 但都不起作用。
我发现了几个提出问题的帖子(如this),但并没有真正提供答案。
这是可能的……但不漂亮也不可靠。
这是我在进行研究和实验后刚刚写的一个 VBA 子程序,它可以满足您的需求。本质上是作为概念证明提供的。
Sub ImmediateWindowSendKeys(keys As String)
set w = Application.VBE.windows("Immediate")
w.SetFocus
SendKeys keys
w.Visible = True
End Sub
我假设你可以将它转换成你想要的语言,甚至可以从 C# 调用这个 sub。此方法的主要问题是,如果您正在单步执行代码、在当前处理的任何位置设置断点或生成弹出警报(这是发送键的限制),它就不起作用。但是,如果使用 F5 或从即时窗口运行,它确实有效。
我将尝试找出一种访问窗口内容的方法,但现在这是我能提供的最好的方法。
编辑:
根据您的评论,这应该同样没用。但是,我才刚刚开始涉足这种事情,所以这是一种游戏。这会将注释添加到当前模块的末尾。
Sub AddCommentsToEndOfModule()
Set cm = Application.vbe.ActiveCodePane.CodeModule
cm.InsertLines cm.CountOfLines + 1, "'Dear Developer " & vbCrLf & "'Hi" & vbCrLf & "'Sincerely," & vbCrLf & "'Me"
End Sub