Outlookのグローバルアドレス一覧を使用してユーザーの電子メールアドレスを検索しようとしています。ここで私がそれを行うために使用するVBAコードです。グローバルアドレス一覧の参照でオートメーションエラーが発生しました
'Snip
If firstName <> "" Then
Dim o, AddressList, AddressEntry
Dim AddressName, Address, Address2 As String
Set o = CreateObject("Outlook.Application")
Set AddressList = o.Session.AddressLists("Global Address List")
AddressName = firstName
For Each AddressEntry In AddressList.AddressEntries
If AddressEntry.Name = AddressName Then
Address = AddressEntry.GetExchangeUser.PrimarySmtpAddress
Exit For
End If
Next AddressEntry
End If
'Snip
変数 "firstName"の形式は、姓、名です。これは一見、私はそれを使用しようとする時間の半分だけ動作します。たとえば、自分の名前を毎回完全にうまく動作させるとしたら、私が同僚の名前を入れると、Outlookから「OutlookはMicrosoft Exchange Server * .comからデータを取得しようとしています。 "その後、私は自動化エラーが発生します。私は動作しない名前と同じ名前のものは共通して見つけられませんでした。どんな助けも非常に高く評価されるでしょう。
EDIT:私が思った別のメモは、エラーウィンドウでデバッグを押すと、「次のAddressEntry」行が強調表示されます。
は 'firstName'は人物の名または人物のリストの最初の名前であるはずですか?通常、それは一人の "与えられた"または "キリスト教の"名前を指します。 _Namingものは難しいです。 – FreeMan
おそらく 'AddressList.AddressEntries.Count'またはこれに類するものがあります。あなた自身のこと以上にアクセスできるように、あなたの数をチェックしてください。また、 'Address2'は' String'で、 'AddressName'と' Address'は 'Variant'です。 – FreeMan
@FreeMan混乱して申し訳ありませんが、secondListという別の変数があり、両方の変数が異なるフル(Doe、Janeなど)の名前を保持するように、アドレスリストを2回検索します。私は自分よりも他の名前を試していて、ある人は仕事をしています。私は例として自分自身を使用しました。私はまた、アドレス名と住所を文字列に変更しようとしましたが、違いはありませんでした。 Address2はコードの次の部分で使用されます。 – wgray