说到用脚本创建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_Reply
TemplateFile_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 email
Sub 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 = Nothing
End Sub
好了,有了这段代码,以后你的签名要修改,基本上你只需要修改那份Word版的模板即可,代码几乎可以不动了,再也不用因为签名的变化而痛苦的修改VBS代码了。
限时特惠:本站每日持续更新海量各大内部网赚创业教程,会员可以下载全站资源点击查看详情
站长微信:11082411