在 Outlook 中,要创建一个邮件模板并在邮件主题中自动添加当前日期,我们需要使用一些简单的 VBA 脚本(Visual Basic for Applications,是 Microsoft 的宏语言)。以下是如何操作的步骤:
-
启用开发者选项卡:
- 首先,您需要在 Outlook 中启用“开发者”选项卡。去“文件” > “选项” > “自定义功能区”,然后勾选“开发者”复选框。
-
打开 VBA 编辑器:
- 在“开发者”选项卡中,点击“Visual Basic”按钮,这将打开 VBA 编辑器。
-
插入一个新模块:
- 在 VBA 编辑器中,右键点击左侧的“VBAProject (Outlook)”项目,选择“插入” > “模块”,这将创建一个新的模块。
-
编写 VBA 脚本:
- 在新模块的空白区域中,粘贴以下代码。这段代码将创建一个新邮件,并在主题中插入当前日期。
Sub CreateMailWithDate()
Dim objMail As Outlook.MailItem
Dim strSubject As String
'计算工作经过时间
Dim Time1 As Date
Dim Time2 As Date
Dim TimeDifference As Date
Dim TimeParts() As String
Dim Hours As Double
‘初始化结束
strSubject = "某某部门_某某" & Format(Now, "yyyyMMdd") & "工作报告"
objMail.Subject = strSubject
Dim currentTime As Date
Dim roundedTime As Double
'
currentTime = Now
'
Dim minutes As Integer
minutes = Minute(currentTime)
If Minute(currentTime) < 30 Then
roundedTime = DateValue(currentTime) + TimeValue(Hour(currentTime) & ":00")
Else
roundedTime = DateValue(currentTime) + TimeValue(Hour(currentTime) & ":30")
End If
roundedTimeStr = Format(roundedTime, "hh:mm")
'计算工作经过时间
Time1 = TimeValue("09:00:00") '
roundedTimeStr = Format(roundedTime, "hh:mm")
Time2 = TimeValue(roundedTimeStr)
TimeDifference = Time2 - Time1
If Time2 >= TimeValue("13:00:00") Then
TimeDifference = TimeDifference - TimeValue("01:00:00")
End If
TimeParts = Split(TimeDifference, ":")
Hours = Val(TimeParts(0)) + (Val(TimeParts(1)) / 60)
'计算工作经过时间 8.0 H
objMail.Body = "自定义工作内容" & vbCrLf "工作时间:9:00 至 "& roundedTimeStr & " 历时:" & Hours & " H"
objMail.To = "leader1@csdn.com"
objMail.CC = "leader2@biprogy.com; leader3@csdn.com"
objMail.Display
'
Set objMail = Nothing
End Sub
以上代码完成编写
加载方法
-
保存代码:
- 保存 VBA 项目并关闭 VBA 编辑器。
-
添加宏按钮到工具栏 (可选):
- 您可以自定义您的工具栏,添加一个快捷方式来运行这个宏。
- 去“开发者”选项卡,然后选择“添加到功能区上的宏”或“添加到快速访问工具栏上的宏”,找到您的宏(通常显示为
Project1.CreateMailWithDate
),并将其添加到您喜欢的位置。
-
运行宏:
- 现在,每当您想创建一个新的预设主题带日期的邮件时,您只需要运行这个宏,一个新邮件就会弹出,其主题行包含当前的日期。
然后也可以直接将该宏按键加载到菜单栏