連絡先の電子メールの表示名を一括変更するマクロ


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


連絡先で電子メールを登録すると自動で「姓+名+(電子メールアドレス)」で電子メール表示名が作成されます。
それではあまりにも芸がないので「姓+名+(会社名+ハイフン+部署)」や「姓+名+敬称+(会社名)」に変更出来るマクロがあれば便利だと思います。


そこで、下記のマクロを作ってみました。

' ここをトリプルクリックでマクロ全体を選択できます。
Public Sub ChangeEmailDisplayName()
    Dim objContact As ContactItem
    Dim bModified
    Dim strNewDisplayName
    For Each objContact In ActiveExplorer.Selection
        With objContact
            If .MessageClass = "IPM.Contact" Then
                bModified = False
                strNewDisplayName = .LastName & .FirstName & .Suffix
                If .CompanyName <> "" Then
                    strNewDisplayName = strNewDisplayName & " (" & .CompanyName
                    If .Department <> "" Then
                        strNewDisplayName = strNewDisplayName & "-" & .Department
                    End If
                    strNewDisplayName = strNewDisplayName & ")"
                End If
                If .Email1AddressType = "SMTP" Then
                    .Email1DisplayName = strNewDisplayName
                    bModified = True
                End If
                If .Email2AddressType = "SMTP" Then
                    .Email2DisplayName = strNewDisplayName
                    bModified = True
                End If
                If .Email3AddressType = "SMTP" Then
                    .Email3DisplayName = strNewDisplayName
                    bModified = True
                End If
                If bModified Then
                    .Save
                End If
            End If
        End With
    Next
End Sub

このマクロは連絡先で選択されたアイテムの表示名を以下のように一括で変更するものです。

会社名と部署名がある場合 <姓><名><敬称> (<会社名>-<部署名>)
会社名があり部署名がない場合 <姓><名><敬称> (<会社名>)
会社名と部署名がない場合 <姓><名><敬称>

なお、[敬称] は [詳細] ページにありますが、連絡先のフィールドを使わず、すべての連絡先について一律で「様」を使う場合、以下の通り変更してください。

変更前:

              strNewDisplayName = .LastName & .FirstName & .Suffix

変更後:

              strNewDisplayName = .LastName & .FirstName & "様"

2007/09/29 訂正

部署名の追加ロジックに誤りがあり、部署名がない場合に部署名を追加するようなコードになっていたため、訂正しました。
メッセージでご指摘くださった Horie さん、ありがとうございます。

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

連絡先の電子メールの表示名を一括変更するマクロ」への2件のフィードバック

  1. はじめまして。
    Outlook2007で上記のマクロを登録・実行しようとしましたが
    型不一致のエラーで落ちてしまいます。

    マクロ超初心者のため、なぜだかよくわからないのですが
    「 For Each objContact In ActiveExplorer.Selection」
    の部分で落ちます。

    何かアドバイスありましたら教えていただけますと幸いです。
    よろしくお願いいたします。

    • 連絡先フォルダーで連絡先アイテムを選択してますでしょうか?
      このマクロを実行する前に、連絡先フォルダーで表示名を変えたい連絡先を CTRL キーを押しながらクリックして選択状態にしてください。
      また、個人用配布リストは選択しないでください。

コメントを残す

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

WordPress.com ロゴ

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

Twitter 画像

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

Facebook の写真

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

Google+ フォト

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

%s と連携中