<Outlook>超時短!返信メールの宛先を電話帳表示に変換するマクロ

<Outlook>超時短!返信メールの宛先を電話帳表示に変換するマクロ悩む人

仕事でOutlookを使ってメールを送ることが多い。
届いたメールに返信すると、宛先がアドレス表記のままや、向こうが登録している名前のみ(呼び捨て状態)になってしまい困る。

毎回アドレス帳から入れなおすのも無駄だし…いい方法無いかな?

Outlooで受信したメールに返信ボタンを押すと

その1:相手が登録している名前(呼び捨て)で表示される

<Outlook>超時短!返信メールの宛先を電話帳表示に変換するマクロ

その2:メールアドレスのまま表示される

<Outlook>超時短!返信メールの宛先を電話帳表示に変換するマクロ
<Outlook>超時短!返信メールの宛先を電話帳表示に変換するマクロごん

このままでも勿論問題はありませんが、
会社によっては宛先表示にも敬称役職をつけるように指示される場合があります。

目次

Outlookで宛先に役職や敬称をつけないと相手に見えるのか?

宛先(メールアドレスを入力する欄)に敬称や役職をつけると、受した相手にもみえるんですか?

見えます。

送信した際の表示されている内容で届きます。

理想の表示方法

理想としては、次のように「敬称」(あれば役職)を表示させることがベストです。

<Outlook>超時短!返信メールの宛先を電話帳表示に変換するマクロ
<Outlook>超時短!返信メールの宛先を電話帳表示に変換するマクロごん

宛先に敬称や役職名を付ける場合は、
手順1)アドレス帳に登録する
手順2)宛先からアドレス帳を使って追加しなおす
必要があります

<Outlook>超時短!返信メールの宛先を電話帳表示に変換するマクロ

メールの受信者に不快な思いをさせないよう、アドレス帳の表示名に役職・敬称をつけて登録しましょう。

<Outlook>超時短!返信メールの宛先を電話帳表示に変換するマクロごん

それではここからが本題。
ボタン一つで返信メールの宛先を、電話帳に登録した表示名に変更してくれるマクロをご紹介します。

なお、今回紹介させていただくマクロはOutlook研究所さんが作成されたものです。

STEP
Outlookのマクロを有効にする

Outlookに開発のタブがある場合はこのステップはスキップでOKです

<Outlook>超時短!返信メールの宛先を電話帳表示に変換するマクロ

開発タブがない場合は、タブの何もない箇所で右クリックしてリボンのユーザー設定を開きます。

<Outlook>超時短!返信メールの宛先を電話帳表示に変換するマクロ

開発の欄にチェックが入っていないと思うので、チェックをいれます

<Outlook>超時短!返信メールの宛先を電話帳表示に変換するマクロ
STEP
Visual Basicを開いて標準モジュールを挿入

開発タブからVisualBasicをクリックするかAlt+F11で立ち上げます

<Outlook>超時短!返信メールの宛先を電話帳表示に変換するマクロ

 Project1 の中の

Microsoft Office Outlook Objectsの中にある

 ThisOutlookSessionをダブルクリックすると、右側にウィンドウが表示されるので、こちらにプログラムのコードを貼り付けます

<Outlook>超時短!返信メールの宛先を電話帳表示に変換するマクロ
STEP
コードの貼り付け

下記コードをコピーして貼り付けます

<Outlook>超時短!返信メールの宛先を電話帳表示に変換するマクロごん

なお、今回紹介させていただくマクロはOutlook研究所さんが作成されたものです。

Private Function FindContactByAddress(strAddress As String)
    Dim objContacts 'As Folder
    Dim objContact As ContactItem
    '
    Set objContacts = Application.Session.GetDefaultFolder(olFolderContacts)
    Set objContact = objContacts.Items.Find("[Email1Address] = '" & strAddress _
        & "' or [Email2Address] = '" & strAddress _
        & "' or [Email3Address] = '" & strAddress & "'")
    Set FindContactByAddress = objContact
End Function

' 返信先の表示名を変更。
'
Public Sub ReplyWithAddressBookName()
    Dim objReply As MailItem
    Dim objRecip As Recipient
    Dim objContact As ContactItem
    Dim objAddrList As AddressList
    Dim i As Integer
    Dim objAddrEntry As AddressEntry
    Dim bFound As Boolean
    Dim cRecips As Integer
    Dim colAddress() As String
    Dim colName() As String
    Dim colType() As Integer
    '
    Set objReply = ActiveExplorer.Selection.Item(1).ReplyAll
    cRecips = objReply.Recipients.Count
    ReDim colAddress(cRecips) As String
    ReDim colName(cRecips) As String
    ReDim colType(cRecips) As Integer
    For i = cRecips To 1 Step -1
        Set objRecip = objReply.Recipients.Item(i)
        colAddress(i) = objRecip.Address
        colName(i) = objRecip.Name
        colType(i) = objRecip.Type
        objReply.Recipients.Remove i
    Next
    '
    For i = 1 To cRecips
        Set objRecip = Nothing
        For Each objAddrList In Session.AddressLists
            If objAddrList.AddressListType = olOutlookAddressList Then ' Outlook 2003 の場合はこの行をコメントアウトし、下の1行を有効にする
            'If objAddrList.Name = "連絡先" Then
                For Each objAddrEntry In objAddrList.AddressEntries
                    If objAddrEntry.Address = colAddress(i) Then
                        Set objRecip = objReply.Recipients.Add(colAddress(i))
                        Set objRecip.AddressEntry = objAddrEntry
                        objRecip.Type = colType(i)
                        Exit For
                    End If
                Next
                If Not objRecip Is Nothing Then
                    Exit For
                End If
            End If
        Next
        If objRecip Is Nothing Then
            Set objRecip = objReply.Recipients.Add(colName(i) & "<" & colAddress(i) & ">")
            objRecip.Type = colType(i)
        End If
    Next
    objReply.Display
End Sub
STEP
開発からマクロを起動してみる

受信トレイの閲覧ウィンドウで、返信したいメールを選択中に開発からマクロを選択して実行します

<Outlook>超時短!返信メールの宛先を電話帳表示に変換するマクロ
<Outlook>超時短!返信メールの宛先を電話帳表示に変換するマクロごん

今回は閲覧ウィンドウからの返信ですが、本家のサイトには受信メールをダブルクリックして開いたポップアップウィンドウからの返信用マクロもあります

いちいち開発からマクロを実行することが面倒なひとは、次の章で紹介する「クイックツールバーにマクロを登録する方法」を確認してください。

Outlookのクイックツールバーにマクロのショートカットを登録する

<Outlook>超時短!返信メールの宛先を電話帳表示に変換するマクロごん

折角マクロを登録して便利な環境になっても、いちいち開発タブから実行するのは面倒ですよね。

そこで当ブログでは、クイックツールバーにマクロをショートカットする方法を推奨します。

STEP
<Outlook>超時短!返信メールの宛先を電話帳表示に変換するマクロ

クイックツールバーの何もない箇所で右クリックし、クイックアクセスツールバーのユーザー設定を選択します

<Outlook>超時短!返信メールの宛先を電話帳表示に変換するマクロ

もしクイックツールバーが表示されていない場合は、リボンの何もない箇所で右クリックしクイックアクセスツールバーを表示させて下さい

STEP
マクロの登録
<Outlook>超時短!返信メールの宛先を電話帳表示に変換するマクロ

コマンドの選択からマクロを選びます

<Outlook>超時短!返信メールの宛先を電話帳表示に変換するマクロ

追加したいマクロを選択し、追加をクリック

<Outlook>超時短!返信メールの宛先を電話帳表示に変換するマクロ

変更を押します

<Outlook>超時短!返信メールの宛先を電話帳表示に変換するマクロ

アイコン名前を変更してOKで終了

この記事が気に入ったら
フォローしてね!

お手数でなければシェアしてください
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

ごんのアバター ごん でざいなー

デザイン・パソコン・副業がお好き

Excelやillustratorの使い方
日々の生活で効率をあげる方法など
あらゆることを書いています

目次