1. 定长内容编码
1-1. 在Outlook应用中按下Alt+F11,打开VBE编辑器,如下图:

1-2. 在ThisOutlookSession模块中添加如下代码:
vbscript
Const TOOLBAR_NAME As String = "Daliy Report"
'-----------------------------------------
' 当Outlook启动时会自动运行此宏
'-----------------------------------------
Private Sub Application_Startup()
' 调用添加按钮的函数
AddCustomButton
End Sub
'-----------------------------------------
' 当 Outlook 关闭时会自动运行此宏,用于清理
'-----------------------------------------
Private Sub Application_Quit()
'调用移除按钮的函数
RemoveCustomButton
End Sub
'-----------------------------------------
' 移除自定义按钮的函数
'-----------------------------------------
Sub RemoveCustomButton()
On Error Resume Next
'删除我们创建的工具栏
Application.ActiveExplorer.CommandBars(TOOLBAR_NAME).Delete
On Error GoTo 0
End Sub
'-----------------------------------------
' 添加自定义按钮的函数
'-----------------------------------------
Sub AddCustomButton()
Dim cb As Office.CommandBar
Dim btn As Office.CommandBarButton
Dim customToolbarName As String
'自定义的工具栏名称
customToolbarName = TOOLBAR_NAME
On Error Resume Next
'先尝试删除旧的,防止重复添加
Application.ActiveExplorer.CommandBars(customToolbarName).Delete
On Error GoTo 0
'在主窗口(Explorer)的 CommandBars 集合中添加一个新的工具栏
Set cb = Application.ActiveExplorer.CommandBars.Add(Name:=customToolbarName, Position:=msoBarBottom, Temporary:=True)
'在新的工具栏上添加一个按钮
Set btn = cb.Controls.Add(Type:=msoControlButton)
With btn
'设置按钮上显示的文字
.Caption = "業務開始"
'设置按钮图标
.FaceId = 351 '71
'显示图标和文字
.Style = msoButtonIconAndCaption
'指定点击按钮时要运行的宏的名称
.OnAction = "OnBench.DailyReport.StartWorkAction"
End With
Set btn = cb.Controls.Add(Type:=msoControlButton)
With btn
.Caption = "休憩開始"
.FaceId = 352 '72
.Style = msoButtonIconAndCaption
.OnAction = "OnBench.DailyReport.StartBreakAction"
End With
Set btn = cb.Controls.Add(Type:=msoControlButton)
With btn
.Caption = "休憩終了"
.FaceId = 341 '73
.Style = msoButtonIconAndCaption
.OnAction = "OnBench.DailyReport.EndBreakAction"
End With
Set btn = cb.Controls.Add(Type:=msoControlButton)
With btn
.Caption = "業務終了"
.FaceId = 342 '74
.Style = msoButtonIconAndCaption
.OnAction = "OnBench.DailyReport.EndWorkAction"
End With
'使工具栏可见
cb.Visible = True
'释放对象变量
Set btn = Nothing
Set cb = Nothing
End Sub
1-3. 在DailyReport模块中添加如下代码:
vbscript
Const MAIL_SALUTATION As String = "○○さん" '宛名
Const MAIL_GREETING As String = "お疲れ様です。○○○です。" '挨拶
Const MAIL_SIGNOFF As String = "以上です、よろしくお願いいたします。" '結び
Const MAIL_FONT_NAME As String = "Meiryo UI"
Const MAIL_FONT_SIZE As Integer = 10
'---------------------------------------
'①業務開始
'---------------------------------------
Public Sub StartWorkAction()
Dim mail As Outlook.MailItem
Dim mailBody As String
mailBody = MAIL_SALUTATION & "<br><br>"
mailBody = mailBody & MAIL_GREETING & "<br><br>"
mailBody = mailBody & "業務開始" & "<br>"
mailBody = mailBody & MAIL_SIGNOFF & "<br>"
Set mail = Application.CreateItem(olMailItem)
With mail
.Subject = "【勤怠報告】○○○_" & Format(Now(), "MM/DD")
.To = "abc@test.com"
.HTMLBody = "<html lang='ja'><body>" & _
"<p style='font-family:" & MAIL_FONT_NAME & "; font-size:" & MAIL_FONT_SIZE & "pt;'>" & _
mailBody & _
"</p>" & _
"</body></html>"
.Display
End With
Set mail = Nothing
End Sub
'---------------------------------------
'②休憩開始
'---------------------------------------
Public Sub StartBreakAction()
Dim mail As Outlook.MailItem
Dim mailBody As String
mailBody = MAIL_SALUTATION & "<br><br>"
mailBody = mailBody & MAIL_GREETING & "<br><br>"
mailBody = mailBody & "休憩開始" & "<br><br>"
mailBody = mailBody & MAIL_SIGNOFF & "<br>"
Set mail = Application.CreateItem(olMailItem)
With mail
.Subject = "【勤怠報告】○○○_" & Format(Now(), "MM/DD")
.To = "abc@test.com"
.HTMLBody = "<html lang='ja'><body>" & _
"<p style='font-family:" & MAIL_FONT_NAME & "; font-size:" & MAIL_FONT_SIZE & "pt;'>" & _
mailBody & _
"</p>" & _
"</body></html>"
.Display
End With
Set mail = Nothing
End Sub
'---------------------------------------
'③休憩終了
'---------------------------------------
Public Sub EndBreakAction()
Dim mail As Outlook.MailItem
Dim mailBody As String
mailBody = MAIL_SALUTATION & "<br><br>"
mailBody = mailBody & MAIL_GREETING & "<br><br>"
mailBody = mailBody & "休憩終了" & "<br><br>"
mailBody = mailBody & MAIL_SIGNOFF & "<br>"
Set mail = Application.CreateItem(olMailItem)
With mail
.Subject = "【勤怠報告】○○○_" & Format(Now(), "MM/DD")
.To = "abc@test.com"
.HTMLBody = "<html lang='ja'><body>" & _
"<p style='font-family:" & MAIL_FONT_NAME & "; font-size:" & MAIL_FONT_SIZE & "pt;'>" & _
mailBody & _
"</p>" & _
"</body></html>"
.Display
End With
Set mail = Nothing
End Sub
'---------------------------------------
'④業務終了
'---------------------------------------
Public Sub EndWorkAction()
Dim mail As Outlook.MailItem
Dim mailBody As String
mailBody = MAIL_SALUTATION & "<br><br>"
mailBody = mailBody & MAIL_GREETING & "<br><br>"
mailBody = mailBody & "業務終了" & "<br>"
mailBody = mailBody & MAIL_SIGNOFF & "<br>"
Set mail = Application.CreateItem(olMailItem)
With mail
.Subject = "【勤怠報告】○○○_" & Format(Now(), "MM/DD")
.To = "abc@test.com"
.HTMLBody = "<html lang='ja'><body>" & _
"<p style='font-family:" & MAIL_FONT_NAME & "; font-size:" & MAIL_FONT_SIZE & "pt;'>" & _
mailBody & _
"</p>" & _
"</body></html>"
.Display
End With
Set mail = Nothing
End Sub
2. 重新打开Outlook加载插件
