名前を取得し、Outlookで解決して、選択した名前のエイリアスを返す関数があります。これは、アドレス帳に選択した名前のエントリが複数存在する場合に失敗します。例えば"Smith、Bob" & "Smith、Bob X"。私が解決しようとする名前が "Smith、Bob X"の場合、コードは正常に動作しますが、プレーンな "Smith、Bob"は失敗します。Outlook受信者を解決するときに複数のエントリの最初のエントリを選択する
複数のエントリが見つかった場合、Outlookは名前の確認ダイアログを開きます(これは名前を手動で解決すると発生します)。
私のコードで複数のエントリが見つかった場合は、どのように最初のエントリを選択しますか?あなたが(例えばGALのような)特定の検索コンテナのコンテンツテーブルにPR_ANR制限を作成することができ、拡張MAPIレベル(C++または唯一のDelphi)で
Function GETTPX(ByVal UserName As String) As String
Dim objOL As Object
Dim oRecip As Outlook.Recipient
Dim oEU As Outlook.ExchangeUser
Dim oEDL As Outlook.ExchangeDistributionList
Set objOL = CreateObject("Outlook.Application")
Set oRecip = objOL.Session.CreateRecipient(UserName)
oRecip.Resolve
If oRecip.Resolved Then
Set oEU = oRecip.AddressEntry.GetExchangeUser
End If
GETTPX = oEU.Alias
Set oRecip = Nothing
Set objOL = Nothing
End Function
私は仕事用コンピュータを使用していますので、何かをダウンロードすることはオプションではありません。私は恐れています。だから私はこれがVBAだけで達成できるものではないと思いますか? – StevenWalker
それは正しいです。 –