1

以下のコードを使用して、[グローバルアドレス一覧]ウィンドウを開き、一覧から連絡先を選択しています。

選択した連絡先については、マネージャー名も取得したいのですが。しかし、私はそれを機能させることができないようです。

何かお勧めはありますか?

Private Sub accountManagerName_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
    Dim CDOSession, cdoAddressBook, olkRecipients, objAE

    On Error Resume Next
    Set CDOSession = CreateObject("MAPI.Session")
'   Change the name of your Outlook profile as needed.
    CDOSession.Logon "", "", False, False
    Set olkRecipients = CDOSession.AddressBook(, "Global Address List", 0, False)
    For Each objAE In olkRecipients
        accountManagerName.Text = objAE.name
        'ccManager.Caption = objAE.Manager.name
    Next
    Set olkRecipients = Nothing
    CDOSession.Logoff
    Set CDOSession = Nothing
End Sub
4

2 に答える 2

0

私はそれを理解することができました!

受信者オブジェクトをaddressentryオブジェクトに変換し、そこからマネージャー情報を取得するだけで済みました。これは、を使用して行うこともできobjAE.addressEntry.Managerます。

Private Sub accountManagerName_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal x As Single, ByVal Y As Single)

    On Error Resume Next
    Set CDOSession = CreateObject("MAPI.Session")
'   Change the name of your Outlook profile as needed.
    CDOSession.Logon "", "", False, False
        If Err.Number <> 0 Then MsgBox "Please ensure you have Outlook open.", , "ERROR"
    Set olkRecipients = CDOSession.AddressBook(, "Select Account Manager", 0, False)

    For Each objAE In olkRecipients
        accountManagerName.Text = objAE.name
        AMfullName = objAE.name

        'convert Recipient object to AddressEntry object using the recipient ID
        Set objAE2 = CDOSession.GetAddressEntry(objAE.ID)

        AMfirstName = objAE2.fields(18)
        AMlastName = objAE2.fields(22)
        AMmanagerName = objAE2.Manager

'        Debug.Print AMfirstName
'        Debug.Print AMlastName
'        Debug.Print AMmanagerName
    Next

    ccAMmanager.Caption = AMmanagerName
    ccUserManager.Caption = getName("mgrname")
    ccAMmanager.Activate

    Set olkRecipients = Nothing
    CDOSession.Logoff
    Set CDOSession = Nothing


End Sub
于 2013-03-21T21:29:16.427 に答える
0

Outlook オブジェクト モデルの場合は、AddressEntry.Manager プロパティを使用します。

CDO 1.21 はアドレス エントリのマネージャーを公開しませんが、RedemptionとそのRDOオブジェクト セットを使用できます (CDO 1.21 ライブラリの完全な置き換えを提供し、Outlook と MAPI のスタンドアロン バージョンの両方で実行できます) - RDOAddressEntry を公開します。マネージャーのプロパティ。

于 2013-03-21T06:37:57.610 に答える