说到用脚本创建Outlook邮件签名,你可以通过百度轻松搜索出相关的VBS代码,稍作修改就能用于你的环境。
以上是非常非常常见的签名脚本,这也是我一直用了很多年的方法,逐行逐行去设置字体大小、颜色、间隔甚至超链接等。
但是,我相信用过这个思路的同学们应该都有同样的体会,就是维护这段代码超级不便,只要邮件签名格式变化,就算是加粗了一个字眼,你都得个修改代码,万一签名里面还有表格,那就更让你痛不欲生,有点回到当年用DOS版WPS画表格的感觉。更可怕的是,这个VBS的代码会有些神奇的BUG,只要你们操作过复杂的签名脚本你们就会懂我在说什么。
为了解决用VBS操作表格太困难及更新代码不便的问题,我摸索出的另外一个办法,思路非常简单,既然我们上面的方法是通过操作一个Word的object去逐行逐行的完成一个签名,那我们为何不直接打开一个Word的签名模板,然后通过搜索替换关键字,这样我们就可以避开了超级麻烦的操作格式部分,而仅仅是操作文本内容,这件事情就变得非常简单了。
说干就开
1、先用Word去建立Word版本的签名模板,考虑到新邮件和回复邮件可能会有不同的格式,可以保存两份,新建模板为Signature2023_New,回复模板为Signature2023_Reply,把格式调好,字号、间隔、大小等等。把需要替换的关键字标记一下。
2、修改你的代码。以下只提供核心操作部分,关于如何获取AD中的username, job title,既然你已经看到这里,我相信你肯定知道怎么做。
Dim TemplateFile_New, TemplateFile_ReplyTemplateFile_New = "\yourcompanyshareSignature2023_New.docx"TemplateFile_Reply = "\yourcompanyshareSignature2023_Reply.docx"call CreateSignature("BigHard_2023_New", TemplateFile_New, 0)call CreateSignature("BigHard_2023_Reply", TemplateFile_Reply, 1)'NewOrReply, 0=signature for new email, 1=signature for reply emailSub CreateSignature(SignatureName, Template, NewOrReply) On Error Resume Next Set objWord = GetObject(, "Word.Application") If objWord Is Nothing Then Set objWord = CreateObject("Word.Application") objWord.Visible = False Set objDoc = objWord.Documents.Open(Template) Set objSelection = objWord.Selection Set objSelection = objDoc.Range() 'Name objSelection.Find.Text = "{UserName}" objSelection.Find.Forward = True objSelection.Find.Replacement.Text=UserName objSelection.Find.Execute ,,,,,,,,,,2 'Job Title objSelection.Find.Text = "{JobTitle}" objSelection.Find.Forward = True objSelection.Find.Replacement.Text=JobTitle objSelection.Find.Execute ,,,,,,,,,,2 'Telephone objSelection.Find.Text ="{Telephone}" objSelection.Find.Forward = True objSelection.Find.Replacement.Text=Telephone objSelection.Find.Execute ,,,,,,,,,,2 'Address objSelection.Find.Text = "{Address}" objSelection.Find.Forward = True objSelection.Find.Replacement.Text=Address objSelection.Find.Execute ,,,,,,,,,,2 'Set objEmailOptions = objWord.EmailOptions Set objSignatureObjects = objWord.EmailOptions.EmailSignature Set objSignatureEntries = objSignatureObjects.EmailSignatureEntries objSignatureEntries.Add SignatureName, objSelection If NewOrReply=0 then '0: new signature objSignatureObjects.NewMessageSignature = SignatureName Else '1: reply signature objSignatureObjects.ReplyMessageSignature = SignatureName End If objDoc.Close 0 'objWord.Quit Set objWord = NothingEnd Sub
好了,有了这段代码,以后你的签名要修改,基本上你只需要修改那份Word版的模板即可,代码几乎可以不动了,再也不用因为签名的变化而痛苦的修改VBS代码了。
限时特惠:本站每日持续更新海量各大内部网赚创业教程,会员可以下载全站资源点击查看详情
站长微信:11082411