2014-07-17 2 views
0

저는 Outlook 2013 용 매크로를 만들고 있습니다. 전자 메일에 대한 답장으로 서식 파일을로드 한 다음 일부 정보 (예 : 서식 파일)를 채우는 매크로를 실행한다는 아이디어가 있습니다.현재받는 사람의 이름을 얻으십시오.

"안녕하세요 [FNAME]이 날짜 : [날짜]"

내가 현재 날짜와 [날짜]를 대체하는 코드를 가지고,하지만 난 문제의 연락처에서 이름을 얻는 데 현재 전자 메일의받는 사람 필드에 앉아 있습니다. 나의 현재 추측은 Application.ActiveInspector.CurrentItem를 사용하는 것입니다, 어떻게 든의 라인을 따라 뭔가에 해당하는 ContactCard 객체 설정 : Application.ActiveInspector.CurrentItem.Recipient

내 코드는 지금까지 있습니다 :

Set Insp = Application.ActiveInspector 
Set obj = Insp.CurrentItem 
Set contact = obj.To 
obj.Body = Replace(obj.Body, "[Date]", Format(Now, "MMMM dd, yyyy")) 
obj.Body = Replace(obj.Body, "[FName]", contact.Name) 

답변

1

먼저받는 사람을 검색하려면 MailItem.Recipients 컬렉션을 사용하십시오.

연락처 폴더에 일치하는 연락처가 있다는 보장은 전혀 없습니다. 물론 Namespace.GetDefaultFolder (olFolderContacts)를 사용하여 기본 연락처 폴더를 검색 한 다음 ContactsFolder.Items.Find([Email1Address = '[email protected]'])과 같은 것을 사용하여 검색 할 수 있습니다. 연락처를 가져 오면 ContactItem.FirstName을 사용할 수 있습니다.

같은 도메인의 Exchange 사서함으로 메시지를 보내는 경우 Recipient.AddressEntry.GetExchangeUser를 사용해 볼 수 있습니다. ExchangeUser 개체를 다시 가져 오면 ExchangeUser.FirstName을 사용할 수 있습니다.

모두 실패한 경우 Recipient.Name 속성을 구문 분석하여 "성 (姓)"또는 "성, 이름"형식으로 가정 및 성과 이름을 추출 할 수 있습니다.

마지막으로 연락처 카드에 Outlook이 표시하는 내용이 Facebook 또는 LinkedIn에서 제공되는 경우 프로그래밍 방식으로 세부 정보에 액세스 할 수 없습니다. Redemption 및 해당 RDOSocialConnectors 개체를 사용해 볼 수 있습니다. 지정된 주소 (Recipient.Address)를 가진 사람의 소셜 네트워크를 검색 할 수 있습니다.

+0

이름을 채우는 템플릿으로 응답해야하는 메일이 있다면 Outlook에서 가장 좋은 방법은 무엇입니까? – OttoBunge

+0

"최선의 방법"이 없습니다. 그것은받는 사람이 누구인지에 따라 달라집니다. 사용자 (표시 이름 분석), Exchange 사서함 소유자 (ExchangeUser 개체 사용), 연락처 폴더의 연락처 (연락처 폴더 검색)에 따라 다릅니다. –

관련 문제