ykwll 发表于 2015-9-12 13:21:33

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

  根据网上实现的方法我总结出了两点,如下
  方法一:最简单的办法
     1 在要插入日期的签名编辑中,按Ctrl + F9 出现 域 { }   
     2 在此域中输入{ DATE @\ "yyyy-MM-dd" } 保存编辑
     3在电子邮件中插入签名,按Ctrl + A 全选, 按F9 日期就自动出来了.
     4 以后每次发邮件前,进行第3步操作即可
  
  方法二:利用宏实现
  采用脚本自动生成的方式,而不是使用Outlook自带的签名
  操作如下:
  1.打开outlook,取消原来设置的签名
        2.按照菜单(工具-宏-VisualBasic 编辑器)
        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来更新,感觉很不方便,还是喜欢第二种方法
页: [1]
查看完整版本: 实现Outlook的签名日期自动更新