メッセージの受信時に連番を件名に付与するマクロ


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


受信トレイに入ってくるメールの中から、「特定の言葉を件名に含む」メールまたは「特定の送信者」からのメールのみに、「XXX-0001」、「XXX-0002」・・・というように連番を件名の最後に付与するマクロは作れますでしょうか?
仕事でどうしても必要なのですが、VBAは初めてで困っています。お力貸していただけますと大変助かります。
よろしくお願いいたします。


下記のマクロでご要望の動作になるでしょう。Const で始まる行を適宜変更して使用してください。

' ここをトリプルクリックでマクロ全体を選択できます。
Private Sub Application_NewMailEx(ByVal EntryIDCollection As String)
    Const KEYWORD = "連番" ' 件名に含まれる文字列
    Const SENDER_NAME = "担当者" ' 差出人の名前
    Const SEED_NUMBER = 1 ' 連番の開始番号
    Const PREFIX_WORD = "XXX-" ' 連番の前につける文字列
    Dim objItem 'As MailItem
    Dim iNum As Integer
    '
    Set objItem = Session.GetItemFromID(EntryIDCollection)
    If objItem.MessageClass = "IPM.Note" Then
        If objItem.Subject Like "*" & KEYWORD & "*" Or _
           objItem.SenderName = SENDER_NAME Then
            iNum = GetSetting("OutlookLab", "AutoNumber", "AutoNumber", SEED_NUMBER)
            objItem.Subject = objItem.Subject & " " & PREFIX_WORD & Format(iNum, "0###")
            objItem.Save
            iNum = iNum + 1
            SaveSetting "OutlookLab", "AutoNumber", "AutoNumber", iNum
        End If
    End If
End Sub

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

広告

メッセージの受信時に連番を件名に付与するマクロ」への1件のフィードバック

  1. とても参考になります。
    ちなみに特定条件を迎えた時に連番を「1」などにリセットすることは可能なのでしょうか?
    AutoNumberについて調べましたが関連する記述を見つけられず。。。

コメントを残す

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

WordPress.com ロゴ

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

Twitter 画像

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

Facebook の写真

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

Google+ フォト

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

%s と連携中