日報改善案

※月をまたぐと、バグることが分かったので、週末に直します。


会社に入ったら、毎日業務内容を日報としてメールすることになった。

でもめんどくさいし、見返すことないから自分のためにならないので、

簡単に書ける、その日の仕事内容が簡単に見返せる日報を考えてみました。

今の状況 
・会社から支給されているパソコンに最初から入っているoutlookを使っている。
outlookのスケジュール機能で、スケジュールを管理してる。
outlookのメールの機能で、メール書いてる。

日報改善案
1)今日の出来事を、outlookのスケジュール機能に書き出す。ついでに明日の予定も立てる。

2)今日と明日のスケジュールをメールに書き出すマクロを実行する。
3 日報っぽくして送信!

こうすれば、カレンダーに今までの仕事内容が保存できて、
”あれはいつのことだっけ?”となった時に見返せるはず。

*1

マクロのサンプル

Sub 日報()
'メール
Dim OlApp As Outlook.Application
Dim mItem As Outlook.MailItem
Dim Subj As String
Dim EmailAddr As String
Dim Msg As String

'スケジュール
Dim dtExport As Date
Dim StrStart As String
Dim StrEnd As String
Dim colAppts As Items
Dim objAppt 'As AppointmentItem
Dim StrStartn As String
Dim StrEndn As String


'タスク
Dim jobNAME As String
'Create Outlook object
Set OutlookApp = New Outlook.Application
'Compose message
EmailAddr = "mail@mail.com"
Suj = "本日の日報"
Msg = "各位" & vbNewLine & vbNewLine & "お疲れ様です。" & vbNewLine & vbNewLine & vbNewLine & "本日" & Format(Now, "mm月dd日") & "の日報をお送りいたします。" & vbNewLine

dtExport = Now

'strStart = Year(Now) & "/" & Month(Now) & "/" & Day(Now) & "/ 00:00"
StrStart = "00:00"
StrEnd = Day(Now) & "/ 23:59"

Set colAppts = Application.Session.GetDefaultFolder(olFolderCalendar).Items
colAppts.Sort "[Start]"
colAppts.IncludeRecurrences = True

Set objAppt = colAppts.Find("[Start] < """ & StrEnd & """ AND [End] >= """ & StrStart & """")
While Not objAppt Is Nothing
Msg = Msg & Format(objAppt.Start, "short time") & "〜" & Format(objAppt.End, "short time") & vbTab & objAppt.Subject & vbNewLine
Set objAppt = colAppts.FindNext
Wend


''明日の予定
dtExport = tommorow

If 1 = Weekday(Now) Then '今日が金曜日なら、次の勤務日は月曜日.
StrStartn = DateAdd("d", 3, Date) & "/ 4:00"
StrEndn = DateAdd("d", 3, Date) & "/ 23:59"
Else '金曜日以外
StrStartn = "23:59"
StrEndn = DateAdd("d", 1, Date) & "/ 23:59"
End If

Set colAppts = Application.Session.GetDefaultFolder(olFolderCalendar).Items
colAppts.Sort "[Start]"
colAppts.IncludeRecurrences = True

Set objAppt = colAppts.Find("[Start] < """ & StrEndn & """ AND [End] >= """ & StrStartn & """")
While Not objAppt Is Nothing
tMsg = tMsg & "・" & objAppt.Subject & vbNewLine
Set objAppt = colAppts.FindNext
Wend

'''



Msg = Msg & vbNewLine & "明日の予定" & vbNewLine & tMsg & vbNewLine & "明日もよろしくお願いします。"

'Create Mail Item
Set mItem = OutlookApp.CreateItem(olMailItem)
With mItem
.To = EmailAddr
.Subject = Subj
.Body = Msg
.Display

End With

End Sub

*1:ここで、昔のメールを見ているうちに、日報は、朝と夜出さなければいけなかったことを思い出した。新人のうちは、毎朝、今日の予定をメールでチェックしてもらうように言われていたのに、私いつの間にか、その習慣がなくなっている。。ブログを書いている場合ではなくなったので、サンプルのマクロを以下に載せておきます。便利そうだと思ったら、使ってみてください。次は、仕事の内容ごとにどのくらい時間がかかっているか分析するマクロが作りたいです。