次の方法で共有


表示名を Email アドレスにマップする

このトピックでは、Visual Basic for Applications (VBA) のコード サンプルを示します。表示名を取得し、現在のセッションでメッセージング システムに認識されている電子メール アドレスにマップしようとします。

各 Outlook セッションでは、トランスポート プロバイダーによって、メッセージング システムがメッセージを配信できるアドレス帳コンテナーのセットが定義されます。 各アドレス帳コンテナーは、Outlook のアドレス一覧に対応します。 一連のアドレス帳コンテナーで表示名が定義されている場合、表示名は現在のセッションで解決でき、この表示名にマップされるエントリがアドレス一覧に存在します。 アドレス一覧のエントリには、Exchange ユーザーや Exchange 配布リストなど、さまざまな種類のエントリを指定できます。

このコード サンプルでは、関数 ResolveDisplayNameToSMTP は表示名 "Dan Wilson" を例として使用します。 最初に、この表示名に基づいて Recipient オブジェクトを作成し、 Recipient.Resolve を呼び出して、表示名がアドレス一覧で定義されていることを確認します。 名前が解決された場合は、ResolveDisplayNameToSMTPRecipient オブジェクトにマップされている AddressEntry オブジェクトを使用して、さらに型を取得し、可能であれば電子メール アドレスを取得します。

Sub ResolveDisplayNameToSMTP() 
 Dim oRecip As Outlook.Recipient 
 Dim oEU As Outlook.ExchangeUser 
 Dim oEDL As Outlook.ExchangeDistributionList 
 
 Set oRecip = Application.Session.CreateRecipient("Dan Wilson") 
 oRecip.Resolve 
 If oRecip.Resolved Then 
 Select Case oRecip.AddressEntry.AddressEntryUserType 
 Case OlAddressEntryUserType.olExchangeUserAddressEntry 
 Set oEU = oRecip.AddressEntry.GetExchangeUser 
 If Not (oEU Is Nothing) Then 
 Debug.Print oEU.PrimarySmtpAddress 
 End If 
 Case OlAddressEntryUserType.olExchangeDistributionListAddressEntry 
 Set oEDL = oRecip.AddressEntry.GetExchangeDistributionList 
 If Not (oEDL Is Nothing) Then 
 Debug.Print oEDL.PrimarySmtpAddress 
 End If 
 End Select 
 End If 
End Sub

サポートとフィードバック

Office VBA またはこの説明書に関するご質問やフィードバックがありますか? サポートの受け方およびフィードバックをお寄せいただく方法のガイダンスについては、Office VBA のサポートおよびフィードバックを参照してください。