2017-04-03 7 views
1

VBA를 사용하여 사용자 Outlook 일정에 약속을 추가합니다.이 약속은 매크로가 실행되는 Outlook 응용 프로그램 일정에 모두 표시되며 Exchange 서버의 사용자 공유 폴더 (사용자의 스마트 폰 캘린더 등에 표시되도록). 순간Outlook 기본 약속 폴더 및 공유 폴더에 약속 추가

나는 달성하거나/또는 수 : 물론

Set myOlApp = Application 
Set myNamespace = myOlApp.GetNamespace("MAPI") 
Set myFolder = myNamespace.GetDefaultFolder(olFolderCalendar) 
Set exchFolder = myNamespace.GetSharedDefaultFolder(myOlApp.Session.CurrentUser, olFolderCalendar) 
... 

Set myAppointment = myOlApp.CreateItem(olAppointmentItem) 'shows in the executing application calendar 
'OR 
Set myAppointment = exchFolder.items.add(olAppointmentItem) 'shows in the smartphone calendar 
'then set whatever details we want for the appointment 
With myAppointment 
    .ReminderSet = False 
    .AllDayEvent = False 
    .Sensitivity = olNormal 
    .Subject = "on call" 
    .Start = onCall(i).Begin 
    .Duration = onCall(i).Duration 
    .Save 
End With 

통해 매크로 수 루프를 기본 달력 폴더와도 교환 서버 폴더 모두에서 새 약속을 만들 수 있습니다. 그러나 각 약속에 고유 한 ID가 할당되어있는 경우 이는 실제 해킹입니다 (즉, 같은 이벤트를 나타내는 2 개의 약속이 있지만 각기 다른 고유 ID를 가짐).

defaultFolder 및 sharedDefaultFolder의 폴더 컬렉션에 동일한 약속 인스턴스를 추가하는 방법이 있습니까? 그렇지 않다면 약속의 두 버전이 동일한 복제 자이고 동일한 고유 식별자 등을 갖도록하는 좋은 방법이 있습니까?

답변

1

전망의 약속 항목 내가 알고 아니 었하는 CopyTo 방법이있다, 그래서이 저장 한 후, 교환 폴더에이 방법 및 복사를 호출하면 내 문제

를 해결 한 것이 대답은 원래했다
Set myAppointment = myOlApp.CreateItem(olAppointmentItem) 
With myAppointment 
    'all the properties we wish to assign here 
    .Save 
    .CopyTo exchFolder, olCreateAppointment 
End With 

olCopyAsAccept 옵션을 사용했지만 매크로를 통해 생성 된 각 약속에 대해 보낸 메일 항목이 만들어집니다.