2016-06-28 1 views
0

친애 유래 커뮤니티와 공유 폴더를 통해 Outlook 약속 초대장을 보내기에, 나는이 포럼에서 초보자입니다. 최근에 저는 인터넷 포럼에서 가이드로 VBA를 배웠습니다. 대부분의 경우, 사용 가능한 Q & 마찬가지로 stackoverflow 내 도전 과제를 해결하는 데 도움이됩니다. 그러나 지금까지 해결책과 이유를 찾을 수없는 사람이 있습니다.는 Getinspector</p> <p>, VBA

목표는 공유 폴더를 통해 Outlook 약속을 보내고 getinspector를 사용하여 형식이 지정된 셀을 Excel 통합 문서에서 생성 된 Outlook 약속에 복사하는 것입니다. 모든 작업을 별도로 수행하면 모든 것이 잘 작동합니다. 코드를 통합 할 때 getinspector가 더 이상 작동하지 않는 것 같습니다. 다음은 (내가 VBA를 배우고대로 코드가 포럼의 도움으로 자신에 의해서도 전문 보이는 경우에 저를 용서하십시오) 내가 사용하는 코드입니다 : 그래서

Sub VBA_Appointment() 

Dim objOL As outlook.Application 
Dim objAppt As outlook.AppointmentItem 
Dim objFolder As Object 
Dim objRecip As outlook.recipient 
Dim strName As String 
Dim wrdrng As Word.Range 
Dim Doc As Word.document 

Application.ScreenUpdating = False 
Application.EnableEvents = False 

Const olAppointmentItem = 1 
Const olFolderCalender = 9 

Set objOL = CreateObject("Outlook.Application") 
Set objAppt = objOL.CreateItem(olAppointmentItem) 
Set Doc = objAppt.GetInspector.WordEditor 
Set objNS = objOL.Application.GetNamespace("MAPI") 
Set objFolder = objNS.Folders 

strName = "John Smith" 

Set objRecip = objNS.CreateRecipient(strName) 
Set objFolder = objNS.GetsharedDefaultFolder(objRecip, olFolderCalender) 

With objAppt 
.Subject = "Testing" 
.MeetingStatus = 1 
.RequiredAttendees = "" 
.Start = Now 
.Location = "" 
.BusyStatus = 1 '0=free;1=Tentative;2=Busy 
'Copy desired data from EXCEL sheet and paste on the opened OUTLOOK Appointment 
ThisWorkbook.Sheets("Sheet1").Range("A1:B50").Copy 
Set wrdrng = Doc.Range 
.Display 
wrdrng.Paste 
Application.CutCopyMode = False 
End With 

Application.EnableEvents = True 
Application.ScreenUpdating = True 

Set objAppt = Nothing 
Set objOL = Nothing 
Set objNS = Nothing 
Set objFolder = Nothing 
Set objRecip = Nothing 

End Function 

, 사람 VBA가 profis 경우 확실히 감사하겠습니다 이유를 지적 할 수 있고 마지막 단계 인 클립 보드에서 붙여 넣기가이 경우에 작동하지 않는 이유를 설명 할 수 있습니다.

많은 분들께 미리 감사드립니다.

건배

답변

0

코드는 나를 위해 노력하고 있지만, 아마도 때문에 사용 가능한 메모리, 프로세서 속도 등 웠니 당신은 내가 PowerPoint에서 비슷한 상황, 내가 것에 달렸다 다른 APP-에 엑셀에서 복사하는 중입니다 이 방법을 사용 그것은 당신의 제안에 정말 도움이된다

... 
ThisWorkbook.Sheets("Sheet1").Range("A1:B50").Copy 
Application.Wait Now + TimeValue("00:00:01") 
Set wrdrng = Doc.Range 
.Display 
'if it doesn't work above, paste it here (both would be too much time and not really needed) 
Application.Wait Now + TimeValue("00:00:01") 
wrdrng.Paste 
Application.CutCopyMode = False 
End With 
... 
+0

(이 밀리 초 기반으로하기 때문에, 전체 프로세스에 따라 어떤 정장을 bests sleep 더 잘 될 수있다). 나는 그것을 사과한다. VBA 코드가 작동합니다. =) – Mph