返信時に表示名を削除するマクロ


コメントで以下のようなご要望をいただきました。


仕事でMicro Soft Outlook 2003を使用しています。
返信の際、送信者の登録のアドレス表示でアドレス以外の
日本語の表示があります。

例えば、

”●●くん”

このまま返信をするとそのままの表示で返してしまいます。
敬称などは気にしないという意見もネットでは見かけますが、気にする方もいるようなので、メールアドレスのみで返信したいです。

返信の際に自動で日本語部分は削除できるようなソフトはありませんでしょうか?Thunderbirdはアドオンで対処できたのですが、Outlookにはないでしょうか?


マクロを使えば Outlook でも返信時に受信者の表示名を変更することは可能です。以前、返信メッセージで表示名をアドレス帳のものに置き換えるマクロは作りましたが、単に表示名を削除するだけでよいのであれば、下記のようなマクロになります。このマクロは現在開いているメッセージの返信を作成し、そのあて先や Cc の表示名を削除するというものです。返信ボタンをクリックする代わりにこのマクロを呼び出してください。なお、開いているメッセージではなく、メッセージ一覧で選択しているメッセージについて返信したい場合には、ActiveInspector.CurrentItem を ActiveExplorer.Selection.Item(1) に変更します。


' ここをトリプルクリックでマクロ全体を選択できます。
Public Sub ReplyWithNoDisplayName()
    Dim objReply As MailItem
    Dim cRecips As Integer
    Dim colAddress() As String
    Dim colType() As Integer
    Dim objRecip As Recipient
    Dim objNewRecip As Recipient
    Dim i As Integer
    '
    Set objReply = ActiveInspector.CurrentItem.ReplyAll()
    cRecips = objReply.Recipients.Count
    ReDim colAddress(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
        colType(i) = objRecip.Type
        objReply.Recipients.Remove i
    Next
    '
    For i = 1 To cRecips
        Set objNewRecip = objReply.Recipients.Add(colAddress(i))
        objNewRecip.Type = colType(i)
        objNewRecip.Resolve        
    Next
    objReply.Display
End Sub


マクロの登録方法やメニューへの追加について

2011/1/26 – 宛先の順序が維持されるように修正しました。

返信時に表示名を削除するマクロ」への7件のフィードバック

  1. 初めまして。
    「返信時に表示名を削除するマクロ」を使っておりますが、大変助かっております。

    1点質問なのですが、
    返信時に表示名を削除する際に、元のメールにあるメールアドレスの順番を
    維持することは可能でしょうか。
    現在のマクロですと、並び順が逆になって、返信メールに表示されます。
    どうぞよろしくお願い致します。

      • ありがとうございます!
        急ぎませんし、できたらで構いませんので、
        よろしくお願い致します。

  2. 実行できました。
    しかし、アドレスのみにするというより、
    アドレス帳の登録を表示するマクロなのでしょうか?
    そういう動作をします。

    • 「返信メッセージで表示名をアドレス帳のものに置き換えるマクロ」にも書き込みされているようですが、使用されているのはどちらのマクロでしょうか?
      返信時に表示名を削除するマクロでアドレス帳の名前に置き換わるのであれば、おそらく Exchange を使っている環境なのではないかと思います。その場合、Outlook で対処できる方法はありません。

  3. 確かにExchange環境です。
    かしこまりました。
    迅速なご回答ありがとうございました。

  4. 2011/1/26版を使用しました。
    私の環境(Outlook 2010)のせいなのか、原因がわからず、
    以前のように逆の並び順のままでしたが、
    2つめのfor文の、
      For i = 0 To cRecips – 1

      For i = cRecips – 1 To 0 Step -1
    にすることで、解決しました。

    とても助かりました。ありがとうございました。

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中