こんにちは!「速いは美学!」がモットーのtknriaです!
メーラー「Outlook(読み:アウトルック)」の唯一の難点ともいえる、「再送信」のわかりにくさ。
これまでに2つ、その方法をお伝えしてきました。
今回は、最も速く再送信できる方法をお伝えします。
それはOutlook VBAを用いるものです。
これまでの2つに比べて前準備がとても複雑になっているので、覚悟をもってお進みください。
Outlook VBAで再送信するメリット
設定方法をお伝えする前に、この方法を用いることでどんなメリットがあるか、考えてみたいと思います。
従来の方法からこの方法に切り替えることで、1回の再送信あたり約2sec削減できるとします。
1日に1人が5回使えば、1日、1人あたり10secの削減。
この機能を100人規模の会社に導入し、1年間(240営業日)使用すると、
10sec/人・日 * 100人 * 240日 = 240,000sec/年 = 4,000min/年 = 66.7h/年 の削減になります。
1hあたり3,000円の利益を創り出しているとすると、年間20万円の増益。
この機能を実装するのに必要な工数は、100人に導入しても2h程度。
従って、0.6万円の利益創出を一旦止めることで、毎年、年間20万円のプラス。
このプラスが、実装した初年度だけでなく、Outlookを使い続ける限り続きます。
経営者として、これを見逃す手はないのではないでしょうか。
ここまでメリットをお伝えしてきたので、次はいよいよ方法をお伝えします。
Outlook VBAで再送信する方法
少し複雑で、8ステップもありますが、上記のメリットのために頑張ってチャレンジしてみましょう!
1.Outlookを起動した状態で、「Alt + F11」でVBEを開く。
2.以下のVBAコードをコピペして保存。
3.コード中のSAVE_PATHのパスと一致するように、必要であればフォルダを作成する。
(パスのほうを変更しても問題ない)
4.リボン上で右クリックして、「リボンのユーザー設定」を選択。
5.「ホーム(メール)」内に新しいグループを作成し、名前を変更する。
6.作成したグループを選択しながら、左側の「コマンド選択」で「マクロ」を選択する。
7.2.で作成したマクロ(デフォルトだとマクロ名の終わりが「Resending」)を選択して追加。
8.追加したマクロの名前とアイコンを変更する。
'-------以下、ソース
Public Sub Resending()
Const PR_SMTP_ADDRESS = "http://schemas.microsoft.com/mapi/proptag/0x39fe001e""
Const SAVE_PATH = "D:\temp_attach\" ' 添付ファイルを一時保存しておくフォルダ
On Error Resume Next
Dim orgMail As MailItem
Dim newMail As MailItem
Dim orgRec As Recipient 'recipient は 宛先、受取人
Dim newRec As Recipient
Dim strAddress As String
Dim strSmtp As String
If TypeName(ActiveWindow) = "Inspector" Then
Set orgMail = ActiveInspector.CurrentItem
Else
Set orgMail = ActiveExplorer.Selection(1)
End If
Set newMail = Application.CreateItem(olMailItem)
newMail.Subject = orgMail.Subject
Dim orgAttach As Attachment
Dim strFileName As String
For Each orgAttach In orgMail.Attachments
strFileName = SAVE_PATH & orgAttach.FileName
orgAttach.SaveAsFile (strFileName)
newMail.Attachments.Add (strFileName)
Kill (strFileName)
Next
newMail.Body = orgMail.Body
For Each orgRec In orgMail.Recipients
With orgRec
If .AddressEntry.Type = "SMTP" Then
strAddress = .Address
Else
strAddress = .AddressEntry.PropertyAccessor.GetProperty(PR_SMTP_ADDRESS)
End If
End With
If InStr(orgRec.Name, strAddress) = 0 Then
Set newRec = newMail.Recipients.Add(orgRec.Name & "<" & strAddress & ">")
Else
Set newRec = newMail.Recipients.Add(orgRec.Name)
End If
newRec.Type = orgRec.Type
Next
newMail.Display
End Sub
'-------以上、ソース
Public Sub Resending()
Const PR_SMTP_ADDRESS = "http://schemas.microsoft.com/mapi/proptag/0x39fe001e""
Const SAVE_PATH = "D:\temp_attach\" ' 添付ファイルを一時保存しておくフォルダ
On Error Resume Next
Dim orgMail As MailItem
Dim newMail As MailItem
Dim orgRec As Recipient 'recipient は 宛先、受取人
Dim newRec As Recipient
Dim strAddress As String
Dim strSmtp As String
If TypeName(ActiveWindow) = "Inspector" Then
Set orgMail = ActiveInspector.CurrentItem
Else
Set orgMail = ActiveExplorer.Selection(1)
End If
Set newMail = Application.CreateItem(olMailItem)
newMail.Subject = orgMail.Subject
Dim orgAttach As Attachment
Dim strFileName As String
For Each orgAttach In orgMail.Attachments
strFileName = SAVE_PATH & orgAttach.FileName
orgAttach.SaveAsFile (strFileName)
newMail.Attachments.Add (strFileName)
Kill (strFileName)
Next
newMail.Body = orgMail.Body
For Each orgRec In orgMail.Recipients
With orgRec
If .AddressEntry.Type = "SMTP" Then
strAddress = .Address
Else
strAddress = .AddressEntry.PropertyAccessor.GetProperty(PR_SMTP_ADDRESS)
End If
End With
If InStr(orgRec.Name, strAddress) = 0 Then
Set newRec = newMail.Recipients.Add(orgRec.Name & "<" & strAddress & ">")
Else
Set newRec = newMail.Recipients.Add(orgRec.Name)
End If
newRec.Type = orgRec.Type
Next
newMail.Display
End Sub
'-------以上、ソース
さて、お疲れさまでした。
以上が設定です。
では、実際にOutlookでメールを再送してみましょう。
Outlook VBAで再送してみる
わざわざ章を分けていますが、それほど書くことがありません。
なぜか。
それは、再送信したいメールを選択した状態で、先ほど作成したボタンをクリックするだけだからです。
これだけ!
初級編に比べるととても速くなりました!!
ちなみに、再送する対象メールの添付ファイルが重いときは、さすがにちょっと遅くなってしまいます。
億劫なあとがき
いかがでしょうか。
VBAを使いますし、それぞれの状況に合わせてカスタマイズが必要なので、ちょっと苦手意識を持たれるかもしれません。
私自身もプログラミングは得意というレベルではないので、その気持ちがわかります。
しかし、チャレンジしてみて実装できたときの感覚が最高だということも知っています。
どちらを選択するかは、あなた次第です。
関連記事
・これからGASを始めたい!という方にはこちらの記事がオススメ
→ 億劫な細道「GAS まずGASを使ってみたい」
・VBAやGASについてもっとざっくり知りたい方はこちらの記事がオススメ
→ 億劫な細道「VBAやGASを用いた業務効率化のススメ」
・これからGASを始めたい!という方にはこちらの記事がオススメ
→ 億劫な細道「GAS まずGASを使ってみたい」
・VBAやGASについてもっとざっくり知りたい方はこちらの記事がオススメ
→ 億劫な細道「VBAやGASを用いた業務効率化のススメ」