代码改变世界

实现Outlook的签名日期自动更新

2010-04-13 19:33  Eric.Hu  阅读(17043)  评论(2编辑  收藏  举报

根据网上实现的方法我总结出了两点,如下

方法一:最简单的办法

   1 在要插入日期的签名编辑中,按Ctrl + F9 出现 域 { }   

   2 在此域中输入 { DATE @\ "yyyy-MM-dd" } 保存编辑

   3 在电子邮件中插入签名,按Ctrl + A 全选, 按F9 日期就自动出来了.

   4 以后每次发邮件前,进行第3步操作即可 

  

方法二:利用宏实现

采用脚本自动生成的方式,而不是使用Outlook自带的签名

操作如下:

     1.打开outlook,取消原来设置的签名

      2.按照菜单(工具-宏-Visual Basic 编辑器)

      3.在出现的编辑器,从左边选择:ThisOutlookSession,右边默认应该是空白。

      4.将下面的代码复制到右边: 

 

 1 '------------------------------------------------------------------
 2 
 3 Dim myOlApp As New Outlook.Application
 4 
 5 Private WithEvents myOlInspectors As Outlook.Inspectors
 6 
 7 Private myMailItem As Outlook.MailItem
 8 
 9 Function Signature() As String
10 
11 Dim mDate As Date
12 
13 mDate = Format(Now"yyyy-MM-dd")
14 
15 Signature = "<font size=2>"
16 
17 Signature = Signature & "<p>&nbsp;</p>"
18 
19 Signature = Signature & "<p style=""""font-size: 10px"""">自动签名添加日期<br />" & mDate & " <br />"
20 
21 Signature = Signature & "自动签名添加日期成功</p>"
22 
23 
24 Signature = Signature & "</font> "
25 
26 End Function
27 
28 Private Sub Application_Startup()
29 
30 'GetSignature
31 
32 Set myOlInspectors = myOlApp.Inspectors
33 
34 End Sub
35 
36 Private Sub myOlInspectors_NewInspector(ByVal Inspector As Inspector)
37 
38 Set myMailItem = Inspector.CurrentItem
39 
40 With myMailItem
41 
42 .HTMLBody = Signature()
43 
44 '.Display‘如果是outlook 2007 将此行注释掉
45 
46 End With
47 
48 End Sub
49 
50 '----------------------------------------------------------------------------------
51 

 

 

      中间部分是签名的HTML内容,可以修改为自己需要设置的。

      5.保存,退出。重新启动outlook,将工具-宏-安全性中设置为低

      以后新建邮件将会用代码中设置的签名内容 

 

个人认为第一种方法是使用Word域方式在签名中加入日期,不能在创建邮件的时候自动更新为当前系统日期,必须按F9来更新,感觉很不方便,还是喜欢第二种方法