我在Windows 7中使用VBA编写的Outlook 2010中,并希望将宏(或子例程)的名称作为字符串变量传递给另一个子例程,并让该例程运行宏.在Word中,您可以使用Application.Run MacroName执行此操作:= strMacroName其中strMacroName是具有宏名称的字符串变量.这种方法在Outlook 2010中不起作用.我怎样才能完成同样的事情?我试过了
Call Application.strMacroNameCall strMacroNamestrMacroName 在自己的路线上Outlook.Application.strMacroName这些都没有奏效.
我刚刚升级到Outlook 2010,因此无法再使用键盘快捷键来运行自定义代码来处理电子邮件.因此,要恢复该功能的某些版本,我已创建代码以显示包含最常见宏的对话框.代码相当干净,随着时间的推移进行修改并传递我想要运行的宏的名称,但我曾经能够在一个命令(Application.Run MacroName:=strMacroName)中运行该例程.
现在我必须包含一个long switch语句来完成同样的事情.不是那么简单.
谢谢!
CallByName 似乎是唯一的出路.
使用此代码ThisOutlookSession:
Public Sub TestFoo()
Dim testClass As New TestClass1
CallByName testClass, "TestMethod1", VbMethod
End Sub
Run Code Online (Sandbox Code Playgroud)
这段代码在TestClass1:
Public Sub TestMethod1()
MsgBox "huzzah!"
End Sub
Run Code Online (Sandbox Code Playgroud)
呼叫ThisOutlookSession.TestFoo为您提供预期的消息框.