自动运行Outlook
问题描述:
任务是在我的腿上扔,需要我:自动运行Outlook
- 迭代经过很多(1000年),邮件文件夹,在Outlook 2010
- 在一个特定的子文件夹中的每个文件夹,用鼠标右键单击菜单,选择导出为pdf(这是一个插件“DocumentExporter”),然后单击确定按钮
我很少使用outlook,所以我从来没有将它自动化到这种程度。我发现你可以用vba做,也可能.net(我已经安装了.net可编程扩展)
有关最快捷方式的任何建议吗?
谢谢!
答
我没有Outlook,所以下面是air-code。
Sub DoIt()
Recurse ActiveExplorer.CurrentFolder ' select relevant folder in Outlook first
End Sub
Sub Recurse(f as MAPIFolder)
Dim sf As MAPIFolder
PrintPdf
For Each sf In f.Folders
' open a potential sub-tree of folders, and move down one folder in the UI
SendKeys "{RIGHT}{PAUSE 100}{DOWN}"
Recurse sf
Next f
End Sub
Sub PrintPdf()
' open the context menu, go down 4 entries, press enter, wait 10 seconds
SendKeys "{APP}{PAUSE 100}{DOWN 4}{ENTER}{PAUSE 10000}"
End Sub
我不知道这是否会工作,它只是一个想法。确保Outlook在运行时处于前台状态(通过将DoIt()
例程分配给自定义工具栏按钮)。在开始之前,必须先选择起始文件夹。
答
VBA或.NET都是办公自动化的不错选择,但.NET更具前景。
如果您打算现在或将来自动化办公室64位,您必须使用.NET!
“DocumentExporter”是否公开了您可以在VBA中使用的任何COM API?因为,如果你真的必须通过上下文菜单自动化你的方式,这将变得非常难看。 – Tomalak 2011-06-01 21:28:01
谢谢,我没有提到 - 没有COM接口,我希望这会是因为我完全同意它会变得丑陋 - 这就是为什么我提出这个问题:-P – Jubal 2011-06-01 21:40:04
好的,在这种情况下,这将会归结为SendKeys , 然后。 – Tomalak 2011-06-01 21:50:17