2017-11-03 5 views
1

저는 프로그래밍과 스크립팅에 익숙하지 않지만 Outlook에서 자동화하고 싶은 작업이 있습니다.본문 텍스트에 따라 Outlook 전자 메일 제목을 변경하십시오.

은 기본적으로 우리가 "[SITENAME]에 대한 경고 - 업 링크 상태가 변경"주제로 우리의 공급 업체 중 하나의 시스템에서 자동으로 알림 이메일을 받고 어디 이메일 본문은 두 개의 텍스트 문자열 다음 중 하나가 포함됩니다 :

을 "보안 어플라이언스는 인터넷 2를 업 링크로 사용하도록 전환했습니다. "

또는

"가 보안 장치는 역방향으로 인터넷 (1)을 사용하여 전환."

지금 우리는 업 링크가 위 또는 아래로 이동했는지 여부를 확인하기 위해 각 이메일을 읽을 필요가 있습니다.이 이메일을 제목에서 직접 볼 수 있기를 원합니다.

나는 코드에 따라 제조했지만 제대로 동작하지 않습니다 :

Sub changesubject() 

Dim myMessage As Outlook.MailItem 
Set myMessage = Outlook.ActiveInspector.CurrentItem 

If myMessage.Body = "Internet 2 as its uplink" then 
    myMessage.Subject = myMessage.Subject & "- PRIMARY LINK DOWN" 
End If 

If myMessage.Body = "Internet 1 as its uplink" then 
    myMessage.Subject = myMessage.Subject & "- PRIMARY LINK UP" 
End If 

End Sub 

사람이 내 코드에서 누락 무엇을 지적시겠습니까? 감사!

+0

을 얻을 것이다 InStr을하면 (myMessage.Body, "인터넷 2의 업 링크 등")의 답장을 다음 – niton

+0

감사합니다! 이제 코드 아래에 있지만 여전히 작동하지 않습니다. 서브 changesubject() 어둡게 myMessage로서 Outlook.MailItem 세트 myMessage = Outlook.ActiveInspector.CurrentItem 경우 InStr을이어서 myMessage.Subject myMessage.Subject = & (myMessage.Body "인터넷 (2)는 같은 업 링크") "- PRIMARY의 DOWN LINK" 최종면 경우 InStr을이어서 myMessage.Subject myMessage.Subject = & (myMessage.Body "인터넷 (1) 등의 업 링크") "- PRIMARY의 UP LINK" 최종면 최종 서브 – Tabell

+0

'저장'가능성이 있습니다. 새로운 정보/코드로 질문을 편집 할 수 있습니다. – niton

답변

0

= 대신 If 문에 Like을 사용하십시오. This은 어떻게 Like 연산자가 작동하는지 설명합니다. 또한 구글 "VBA 좋아요"수 당신은 더 많은 결과

Sub changesubject() 

Dim myMessage As Outlook.MailItem 
Set myMessage = Outlook.ActiveInspector.CurrentItem 

If myMessage.Body Like "*Internet 2 as its uplink*" then 
    myMessage.Subject = myMessage.Subject & "- PRIMARY LINK DOWN" 
End If 

If myMessage.Body Like "*Internet 1 as its uplink*" then 
    myMessage.Subject = myMessage.Subject & "- PRIMARY LINK UP" 
End If 

End Sub 
+0

감사합니다.하지만 이걸 실행할 때 아무 일도 일어나지 않습니다. Outlook 기본 창에서이 메일을 실행할 메일을 선택했습니다. 그러나 이메일 제목은 그대로 유지됩니다. – Tabell

+0

'Like '는 대소 문자를 구분합니다. 이메일의 본문에 "인터넷 2를 업 링크로"또는 "인터넷 1을 업 링크로"가지고 있지 않은 경우 정확히 어떻게 작성했는지, 잡을 수 없는지, 'Like '를 더 짧은 것으로 예를 들면'If myMessage.Body Like "* nternet 2 *"Then'. 그러나 이메일의 본문에 무엇이 쓰여져 있는지에 달려 있습니다. 주어진 예제를 사용할 때 완벽하게 정상적으로 작동했습니다. @ Tabell –

+0

@Tabell ActiveInspector.CurrentItem은 선택 항목이 아닌 열려있는 항목입니다. – niton