2013-12-11 2 views
1

Outlook에서 전체 주소 목록을 검색 한 다음 아래 코드에 이름과 부서가있는 배열을 만듭니다.VBA를 사용하여 Outlook 연락처에서 관리자 가져 오기

나는 사용자 관리자를 좀하고 싶습니다 -하지만 난 속성 목록에서 찾을 수없고 oUser.GetExchangeUserManager

Dim appOL As Outlook.Application ' Object 
    Dim oGAL As Outlook.AddressEntries ' .NameSpace Object 
    Dim oContact As Outlook.AddressEntry ' Object 
    Dim oUser As ExchangeUser ' Object 
    Dim arrUsers(1 To 65000, 1 To 4) As String 
    Dim UserIndex As Long 
    Dim i As Long 

    Set appOL = New Outlook.Application ' CreateObject("Outlook.Application") 
    Set oGAL = appOL.GetNameSpace("MAPI").AddressLists("Global Address List").AddressEntries 

    For i = 1 To oGAL.Count 
     Set oContact = oGAL.Item(i) 
     If oContact.AddressEntryUserType = 0 Then 
      Set oUser = oContact.GetExchangeUser 
      If Len(oUser.lastname) > 0 Then 
       UserIndex = UserIndex + 1 
       arrUsers(UserIndex, 1) = oUser.Name 
       arrUsers(UserIndex, 2) = oUser.Department 
       arrUsers(UserIndex, 3) = oUser.JobTitle ' Blank 
       'arrUsers(UserIndex, 4) = oUser.GetExchangeUserManager ' ERROR   
      End If 
     End If 
    Next i 

    appOL.Quit 

    If UserIndex > 0 Then 
     Range("A2").Resize(UserIndex, UBound(arrUsers, 2)).Value = arrUsers 
    End If 

    Set appOL = Nothing 
    Set oGAL = Nothing 
    Set oContact = Nothing 
    Set oUser = Nothing 
    Erase arrUsers 

End Sub 

관리자 정보를 얻을하는 방법에 대한 생각 작동하지 않는 이유는 무엇입니까?

답변

3

AddressEntry.Manager을 사용하십시오. 관리자를 나타내는 또 다른 AddressEntry 개체를 반환합니다. Null을 처리 할 준비를하십시오.

+0

감사합니다. 그러나 위의 코드에서 위의 'oContact' 객체 변수에'AddressEntry'를 사용하고 있습니다. oContact 이후에 fullstop 또는 period를 입력하면 회원 목록에 관리자 항목이 표시되지 않습니다. –

+0

AddressEntry.Manager는 Outlook 2000만큼 멀리 떨어져있었습니다 (이전 버전은 확인하지 않았습니다). 속성이 숨겨져 있으면 Intellisense가 표시하지 않습니다. 코드에 입력하여 사용하십시오. –