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