2016-06-10 3 views
1

사용자가 열어 본 현재 메시지를 미리 설정된 주소로 전달하는 Outlook 유틸리티를 개발 중입니다. 이것은 매크로를 사용하여 수행 할 수 있지만 애드 인만큼 사용자 기반에 쉽게 배치 할 수 없습니다. 현재 Visual Studio 리본 디자인을 통해 추가 기능 용 UI를 만들었습니다. 이 과정에서 사용하고자하는 리본에 버튼이 있습니다. 현재 여기에 설명 된 것과 유사한 버튼 동작을 넣으려고합니다 : forwarding MailItem Outlook Addinn issue. 현재 선택 항목을 전달하려면 어떻게합니까? 미리 감사드립니다. 코드 : 모든Outlook 추가 기능을 개발하여 현재 메시지 전달

namespace OutlookAddIn2 
{ 
public partial class Ribbon1 
{ 
    private void Ribbon1_Load(object sender, RibbonUIEventArgs e) 
    { 
    } 
    private void button1_Click(object sender, RibbonControlEventArgs e) 
    { 
     sendMail(); 
    } 
    private void sendMail(Outlook.MailItem mail) 
    { 

     Outlook.Application Application = Globals.ThisAddIn.Application; 
     Outlook.MailItem newmail =  Application.CreateItem(Outlook.OlItemType.olMailItem) as Outlook.MailItem; 
     newmail = mail.Forward(); 
     newmail.Recipients.Add("[email protected]"); 
     newmail.Send(); 
    } 
} 
} 

답변

1

첫째, 당신은 추가 기능을 개발하는 경우 새 Outlook 응용 프로그램 인스턴스를 생성 할 필요가 없습니다. 대신 모든 곳에서 사용할 수있는 Application 속성을 사용해야합니다. 자세한 내용은 Global Access to Objects in Office Projects을 참조하십시오. 경우

당신은 당신이 다음의 일련의 호출을 사용할 수 있습니다 관리자 창을 다루는 경우 :

Application.ActiveInspector().CurrentItem 

경우 바탕 화면의 맨 위 검사기 객체를 반환 ActiveInspector 방법. 이 메서드를 사용하면 사용자가 볼 가능성이 가장 높은 Inspector 객체에 액세스 할 수 있습니다. 예를 들면 :

Sub CloseItem() 
    Dim myinspector As Outlook.Inspector 
    Dim myItem As Outlook.MailItem 
    Set myinspector = Application.ActiveInspector 
    Set myItem = myinspector.CurrentItem 
    myItem.Close olSave 
End Sub 

을하지만 당신은 다음과 같은 순서로 사용할 수있는 탐색기 창에서 현재 선택된 항목을 얻을 필요가있는 경우 다음 ActiveExplorer 방법은 바탕 화면에서 맨 위의 탐색기 개체를 반환

Application.ActiveExplorer().Selection[1] 

을 . 이 방법은 활성 탐색기가없는 경우를 결정할 때 유용하므로 새 탐색기를 열 수 있습니다.

+0

"sendMail()"에 어떻게 추가합니까? 또한 링크의 코드가 입력 유형 정의가없는 매개 변수를 사용하는 방법에 대해 혼란스러워합니다. –

관련 문제