-2

番号が生成される「新しいチケットが作成されました: T20120803.0078」というタイトルのチケットを送信するチケット システムがあります。

チケットに取り組んでいると全員に返信します。返信のタイトルは、「RE: New Ticket Created: T20120803.0078」のようになります。

私の Outlook は、すべてのチケットを「Tickets」という 1 つのフォルダに転送するように設定されています。

メールが返信されたときに、返信と元の両方を「InProgress」という別のフォルダーに送信する方法を理解しようとしています。

4

1 に答える 1

2

don't have a lot of time to figure this one out.

通常、このサイトでは、人々のためにコードを作成するのではなく、彼らが苦労している部分の微調整または完全なコードの作成を支援します。

そうは言っても、私はあなたの質問に興味をそそられ、自分自身を学びたいと思ったので、あなたのために何かをまとめました. これは、まだ必要としているものではない場合、素晴らしいスタートを切るはずです。

アップデート:

最初の部分では VBA も必要ありません。"RE: New Ticket Created"件名に が含まれるすべての送信済みメッセージをIn Progressフォルダーに移動するルールを設定できます。IfF Then End Ifしたがって、以下のコードの最初のブロック全体は必要ありません。(参考のために残しました)。

コード

あなたが提供した設定に基づくすべての仮定。

Outlook VBE の ThisOutlookSession オブジェクトの Application_ItemSend イベントにコードを配置します。

Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)

Dim olNameSpace As Outlook.NameSpace
Set olNameSpace = GetNamespace("MAPI")

Dim olDestFolder As Outlook.Folder
Set olDestFolder = olNameSpace.Folders("myMailbox@myCompany.com").Folders("In Progress")


If TypeName(Item) = "MailItem" Then 'if it's a mail item being sent

    Dim olMailCopy As Outlook.MailItem
    Set olMailCopy = Item.Copy 'copy the item so we can move it and still have it send

    If InStr(1, olMailCopy.Subject, "New Ticket Created") > 0 Then '

        olMailCopy.Move olDestFolder ' move copy of mail to folder

        Dim strTicket As String
        strTicket = Mid(olMailCopy.Subject, InStrRev(olMailCopy.Subject, ": ") + 2) 'just grab ticket id

    End If

End If


Dim olLookUpFolder As Outlook.Folder
Set olLookUpFolder = olNameSpace.Folders("myMailbox@myCompany.com").Folders("Tickets")

Dim olMail As Outlook.MailItem

For Each olMail In olLookUpFolder.Items 'loop through Tickets folder to find original mail

    If InStr(1, olMail.Subject, strTicket) > 0 Then 'look for unique ticket Id

        olMail.Move olDestFolder ' move to InProgress folder

        Exit For

    End If

Next

End Sub
于 2012-08-03T20:58:54.777 に答える