1

Outlook 2010 VBAを使用して、親配布リストのメンバーとして複数の子配布リストを追加しようとしています。

Sue Mosherがオンラインで投稿した基本的なコード(ここで、objItemは、For / Nextループを介して検出された子DLです)は次のとおりです。

Set objRecipient = Application.Session.CreateRecipient(objItem.Subject)
objRecipient.Resolve
objDistributionList.AddMember objRecipient

これは、元の子DLにリンクしているメンバーではなく、子DLを「連絡先」として追加しています。
親DL内の子DLであるはずのメンバーを開くと、「不明」の電子メールアドレスを持つ電子メール連絡先として表示されます。

4

2 に答える 2

2

Outlookオブジェクトモデルではそれを行うことはできません。RDODistListItem.AddContactメソッドを公開するRedemption
の 使用を試みることができます。これにより、ContactItemオブジェクトとDistListItemオブジェクトをパラメーターとして渡すことができます。

于 2013-01-28T18:11:34.677 に答える
0

少し回り道であり、なぜそれが機能するのか理解できませんが、実際にはVBA内でこれを行うことが可能であることがわかりました。

メールアイテムオブジェクトの「to」フィールドに子配布リストを追加することにより、メールアイテムの受信者を配布リストに解決します。次に、それらの受信者を親配布リストに追加できます。これには、子リストが引き続き個別に存在する必要があることに注意してください。子リストが削除されると、親リストはそれを見つけることができなくなります

Sub NestedDistLists()
    Dim outApp As Object
    Dim outMail As Object
    Dim distRecipients As Object
    Dim distListChild As Object
    Dim distListParent As Object

    Set outApp = CreateObject("Outlook.Application")
    Set outMail = outApp.createItem(0)
    Set distListChild = outApp.createItem(7)
    Set distListParent = outApp.createItem(7)
    Set distRecipients = outMail.recipients

    distListChild.dlName = "Test Child"
    distRecipients.Add "john@example.com"
    distRecipients.resolveall
    distListChild.addmembers distRecipients
    distListChild.Save
    outMail.to = distListChild

    distListParent.dlName = "Test Parent"
    distListParent.addmembers distRecipients
    distListParent.Save

    distListParent.display
End Sub
于 2019-04-04T01:14:11.937 に答える