:::: MENU ::::

C.a.T!

CATch a TAIL!

Japanese sub culture and tech.

  • 2018/03/13
  • 0
develop

Outlookで全てのメールのBCCに自分を入れるマクロ

もうLINEでいいよ。

自分の会社は、Slackなど導入されずほぼメール中心のコミュニケーションなわけです。実は、Slackも使ってるんですが、一部の人の間でしか使えてない。で、メーラも技術仕様的にOutlookしか使えない。そんなわけで、しぶしぶOutlookを使っているのですが、いろいろかゆいところに手が届かない。というわけで、ちょこちょこマクロを作ってカスタマイズしています。その辺のTips第一弾。

メールを読む時、基本的にスレッドで読むようにしているのですが、自分が出したメールが抜けると情報が欠落することがある。Outlookが、送信済アイテムに溜まっているメールをスレッドに乗せたりする機能を持っているようですが、スレッドに乗らない場合もあって、なんだか不安定。そこで、確実にスレッドに載せるため、全てのメールを自分にBCCするようにしてます。よくCCに入れてる人を見かけますが、そうすると相手が返信したとき、自分のメアドが2つ入ったりすることがあって、うざいことになります。なので、BCCにしておくのがオススメ。

で、返信時に自動的にBCCに自分のメアドを突っ込むのの一番簡単な方法は、クイック操作を使う方法です。これを使うと設定だけですぐ作れます。ただ、自分はこれでは満足できずわざわざマクロで作っています。なぜかというと、このクイック操作は、リボンのボタンとして設置できないから。クイック操作専用のパレット内にしか配置できなくて、しかもボタンサイズも小さい。これは使いづらいということで、マクロにしています。マクロは、リボンにボタンとして設置できますし、でかいボタンとして設置することも可能。ということで面倒ですが、マクロを作ります。

マクロは以下。

Private Const BCC_ADDRESS = "[email protected]"

Sub NewMailWithBCC()
  Dim objNew As MailItem

  Set objNew = Application.CreateItem(olMailItem)
  Call addBCC(objNew, BCC_ADDRESS)

  objNew.Display
End Sub

Sub ReplyWithBCC()
  Dim objMail As MailItem
  Dim objReply As MailItem

  Set objMail = getCurrentMailItem()
  Set objReply = objMail.Reply
  Call addBCC(objReply, BCC_ADDRESS)

  objReply.Display
End Sub

Sub ReplyAllWithBCC()
  Dim objMail As MailItem
  Dim objReply As MailItem

  Set objMail = getCurrentMailItem()
  Set objReply = objMail.ReplyAll
  Call addBCC(objReply, BCC_ADDRESS)

  objReply.Display
End Sub

Sub ForwardWithBCC()
  Dim objMail As MailItem
  Dim objForward As MailItem
  
  Set objMail = getCurrentMailItem()
  Set objForward = objMail.Forward
  Call addBCC(objForward, BCC_ADDRESS)

  objForward.Display
End Sub

Private Function getCurrentMailItem() As MailItem
  If TypeName(Application.ActiveWindow) = "Inspector" Then
    Set getCurrentMailItem = ActiveInspector.CurrentItem
  Else
    Set getCurrentMailItem = ActiveExplorer.Selection(1)
  End If
End Function

Private Sub addBCC(objMail As MailItem, address As String)
  Dim objRec As Recipient
  
  Set objRec = objMail.Recipients.Add(address)
  objRec.Type = olBCC
  objRec.Resolve
End Sub

BCC_ADDRESSアドレスに自分のメアドを設定すればOK。NewMailWithBCCが新規メール、ReplyWithBCCが返信、ReplyAllWithBCCが全員に返信、ForwardWithBCCが転送用のマクロです。これらのマクロ関数をボタンに割り当ててあげると、普通のボタンと同じ使い勝手になります。





Leave a comment