マクロを使ったBCCの自動送信設定

Outlookでメールを送信する際、送信済みの控えを取っておく目的などで、別のメールアカウント宛にBCCで送りたい場合、毎回BCCを指定するのは面倒です。

Outlookには自動でBCCを設定してくれる機能はありませんが、マクロを登録することで、その機能を実現することができます。

(所要時間:約10分)
  1. デジタル証明書を作成する

    Officeのインストールフォルダ内にあるselfcert.exeを起動し、マクロを実行する際に必要となる自己証明書を作成します。

    「SELFCERT」をダブルクリックして起動
    適当な名前(自分の名前など)を半角英数でつけて「OK」をクリック
    証明書の作成に成功したら「OK」をクリック

    クリックすると展開します。

    selfcert.exeの場所

    • Outlook2016などOffice onlineからディスクを使わずにインストールしたOutlookの場合
      C:\Program Files (x86)\Microsoft Office\root\Office16\selfcert.exe
    • Outlook2013などでディスクを使ってインストールしたOutlookの場合
      C:\Program Files\Microsoft Office 15\root\office15\selfcert.exe
  2. セキュリティ設定の変更

    Outlookの設定画面からセキュリティーセンターを開き、マクロの設定を「すべてのマクロに対して警告を表示する」に変更します。

    Outlookのオプションから「セキュリティセンターの設定」を開きます。
    マクロの設定を「すべてのマクロに対して警告を表示する」に変更し、「OK」をクリックしてOutlookのオプションをすべて閉じます。

    標準設定ではマクロの実行が禁止されているので、この変更をしないと自分で作成するマクロの実行を承認させる画面が表示できません。

  3. マクロを作成する

    Outlookが起動した状態でキーボードの「Alt+F11」を押して「Microsoft Visual Basic for Applications」を開き、左側のProjectツリーから「ThisOutlookSession」をダブルクリックして、右側のウィンドウ内にマクロを貼り付けて編集します。

    「ThisOutlookSession」をダブルクリック
    画面右側に開いたウィンドウに自分用に作成したマクロをコピーペースト

    クリックすると展開します。

    マクロの作成例(送信先アカウントが一つの場合)

    Private Sub Application_ItemSend(ByVal Item As Object, _
                                     Cancel As Boolean)
        Dim objRecip As Recipient
        Dim strMsg As String
        Dim res As Integer
        Dim strBcc As String
        On Error Resume Next
    
        strBcc = "your-adress@gmail.com"
    
    ' Use the account name as it appears in Account Settings
    If Item.SendUsingAccount = "プロバイダ - your-adress@provider.com" Then
    
        Set objRecip = Item.Recipients.Add(strBcc)
        objRecip.Type = olBCC
        If Not objRecip.Resolve Then
            strMsg = "Could not resolve the Bcc recipient. " & _
                     "Do you want to send the message?"
            res = MsgBox(strMsg, vbYesNo + vbDefaultButton1, _
                    "Could Not Resolve Bcc")
            If res = vbNo Then
                Cancel = True
            End If
        End If
    
    End If
    
        Set objRecip = Nothing
    End Sub
    • 9行目の “your-adress@gmail.com“の部分を自分のGmailアドレス(BCCの宛先)に書き換えます。
    • 12行目の”プロバイダ – your-adress@provider.com“の部分を自動BCCを有効にしたい自分のアカウント名に書き換えます。
    • このアカウント名は一字一句正確に入力する必要があります。メールアカウント設定画面を開いてコピペするのが確実です。

    マクロの作成例(送信アカウントが複数ある場合)

    Private Sub Application_ItemSend(ByVal Item As Object, _
                                     Cancel As Boolean)
        Dim objRecip As Recipient
        Dim strMsg As String
        Dim res As Integer
        Dim strBcc As String
        On Error Resume Next
    
        strBcc = "your-adress@gmail.com"
    
    ' Use the account name as it appears in Account Settings
    If Item.SendUsingAccount = "プロバイダ - your-adress@provider.com" Then
    
        Set objRecip = Item.Recipients.Add(strBcc)
        objRecip.Type = olBCC
        If Not objRecip.Resolve Then
            strMsg = "Could not resolve the Bcc recipient. " & _
                     "Do you want to send the message?"
            res = MsgBox(strMsg, vbYesNo + vbDefaultButton1, _
                    "Could Not Resolve Bcc")
            If res = vbNo Then
                Cancel = True
            End If
        End If
    
    End If
    
    ' Use the account name as it appears in Account Settings
    If Item.SendUsingAccount = "プロバイダ2 - your-adress2@provider.com" Then
    
        Set objRecip = Item.Recipients.Add(strBcc)
        objRecip.Type = olBCC
        If Not objRecip.Resolve Then
            strMsg = "Could not resolve the Bcc recipient. " & _
                     "Do you want to send the message?"
            res = MsgBox(strMsg, vbYesNo + vbDefaultButton1, _
                    "Could Not Resolve Bcc")
            If res = vbNo Then
                Cancel = True
            End If
        End If
    
    End If
    
        Set objRecip = Nothing
    End Sub

    11~26行目を繰り返してアカウントを追加します(上記の例では28~43行目が繰り返し部分)。

  4. マクロに署名して保存

    メニュー -> ツール -> デジタル署名 を開き、手順1で作成した自己証明書を選択してOKをクリックしたら、プロジェクトを保存します。

    画面上のメニューから「ツール」→「デジタル署名」をクリック
    デジタル署名のウィンドウが開いたら「選択」をクリック
    作成した証明書を選択して「OK」をクリック
    選択した証明書で署名されたことが確認できたら「OK」をクリック
    フロッピーのアイコンをクリックしてプロジェクトを上書き保存
    終了してOutlookに戻ります。
    Outlookに戻ったら、Outlookもいったん終了させます。この時、プロジェクトへの変更を保存するか聞かれるので「はい」をクリック。
  5. 作成したマクロを信頼(承認)する

    Outlookを再起動すると表示されるセキュリティダイアログで署名の詳細を確認し、「この発行者のドキュメントを全て信頼する」をクリックします。これにより、作成した自動BCC用のマクロが次回から自動実行されます。

    セキュリティに関するダイアログが表示されたら念のため「署名の詳細を表示する」をクリックして確認します。
    先ほど署名した証明書の名前が表示されていることを確認して「OK」をクリック
    「この発行者(=自分)のドキュメントをすべて信頼する」をクリックしてマクロを承認

    承認作業は1回だけで、次回からは表示されません

  6. メール送信のテスト

    作成したマクロが正しく動作するか、送信用のアカウントからメールをテスト送信して確認します。

    自動BCCのマクロはメールの送信処理時に動作するため、メール作成画面のBCC欄にはマクロで設定したBCCのアドレスは表示されません。テストの際は、ご自身でお持ちのサブのメールアドレス宛に送信するなど、実際にメールを送信する必要があります。

この記事がお役に立ちましたら、シェアしていただけると嬉しいです!