【问题标题】:Text manipulation in Outlook using Python使用 Python 在 Outlook 中进行文本操作
【发布时间】:2021-12-08 06:24:53
【问题描述】:

有时,由于公司惯例,在 Outlook 中为某个会议发送新的活动邀请时,我需要在邀请正文中提及会议所需的所有人员。很多时候,我已经发送邀请的名字正是我需要重新写的那些人。我发现如果我从“To...”字段中复制这些名称,它们会以name <mail>; name <mail>; name <mail> 的格式粘贴,所以我编写了这个 Python 函数将其转换为一个由新行分隔的简单名称列表已删除的邮件地址:

def format_invitees(string):
    import re; return ''.join(x.strip(' \n')+'\n' for x in re.sub("[<].*?[>]", "", string).replace(' ; ', ';').split(';')).strip('\n')

现在,有没有什么好的方法可以将此功能实现到 Outlook 宏中,是否将其分配给热键或在右键单击时将其添加到菜单中?顺便提一下,Python是我唯一知道的语言,由于组织命令,我不允许安装任何外部软件。最好的问候!

【问题讨论】:

  • 这听起来像是一个在 VBA 中作为独立脚本更直接地解决/解决的问题,而不是“分包”给 Python(不要误会;Python 也是一个很棒的工具!) --stackoverflow.com/questions/22542834/… 是否会推动你朝着正确的方向前进?
  • 您可以通过按 Alt+F11 在 Outlook 中使用 VBA,而无需安装任何其他软件。另请参阅此 SO 答案:stackoverflow.com/questions/34070693/…

标签: python vba outlook ms-office


【解决方案1】:

我认为import re; return re.sub(r" ?&lt;.*?&gt;;? ?","\n",string) 是定义 Python 函数的一种更短的方式。

但更重要的是,请按照此 SO 问题中的说明启用 VBA 正则表达式模块(针对 Word,但适用于 Outlook):How to Use/Enable (RegExp object) Regular Expression using VBA (MACRO) in word

我认为 outlook.Recipients 属性可能有助于获取您需要列出的人员的姓名:https://docs.microsoft.com/en-us/office/vba/api/outlook.recipients

【讨论】:

    猜你喜欢
    • 2013-06-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-27
    • 2022-12-13
    相关资源
    最近更新 更多