私はVBAの初心者です。何か助けが必要です。列に記載されている名前のOutlookの連絡先から電子メールアドレスを取得するにはどうすればよいですか?
以下の図に示すように、私は名前のリストを持っています。私がしたいのは、Outlookの連絡先リスト(電子メールアドレスが別の連絡先フォルダに散在している)から列Aの名前に基づいて電子メールアドレスを取得し、列Bに貼り付けることです。
または、私は列Bを取り除くことができるように
私はVBAの初心者です。何か助けが必要です。列に記載されている名前のOutlookの連絡先から電子メールアドレスを取得するにはどうすればよいですか?
以下の図に示すように、私は名前のリストを持っています。私がしたいのは、Outlookの連絡先リスト(電子メールアドレスが別の連絡先フォルダに散在している)から列Aの名前に基づいて電子メールアドレスを取得し、列Bに貼り付けることです。
または、私は列Bを取り除くことができるように
このコードは、名前が列Aにあると仮定し、それぞれの名前のために、Outlookの連絡先からの電子メールアドレスを取得し、Outlookで自動的に電子メールを送信することも可能あなたがタップしているアドレス帳の名前は「連絡先」と名前が付けられていて、それらの名前はあなたの図に従ってフォーマットされているものとします。
Option Explicit
Private Sub GetAddresses()
Dim o, AddressList, AddressEntry
Dim c As Range, r As Range, AddressName As String
Set o = CreateObject("Outlook.Application")
Set AddressList = o.Session.AddressLists("Contacts")
'Change this range accordingly
Set r = Range("A1:A25")
For Each c In r
AddressName = c.Value
For Each AddressEntry In AddressList.AddressEntries
If AddressEntry.Name = AddressName Then
c.Offset(0, 1).Value = AddressEntry.Address
Exit For
End If
Next AddressEntry
Next c
End Sub
アドレスがグローバルアドレス一覧にある場合、Outlookでは、[ツール] - > [アドレス帳]に移動します。次に、ドロップダウンリストを使用してアドレスがどのリストにあるかを特定します。コード内の「連絡先」を住所が格納されているアドレス帳の名前に置き換えます。
これを書いていませんでしたあなたの状況に合わせていくつか修正しました。あなたのアプリケーションにはちょっとした調整が必要かもしれません。これがほしいと思うか、あなたが正しい方向に向かうことを望みます。
VBAコードを一切使用せずにすべての連絡先をインポートするだけで済みます。これを行う方法を説明するリンクがあります。
https://www.ablebits.com/office-addins-blog/2014/06/12/import-contacts-excel-outlook/
https://www.extendoffice.com/documents/outlook/1116-outlook-export-contact-to-excel.html
あなたにもGALをフックに興味があるかもしれません。下のリンクをチェックしてください。
すべて可能です。しかし、ここで助けを受ける資格を得るには、自分の努力を示す必要があります。どこかでコードを始めると、「固まっている」と主張でき、誰かがあなたに1〜2歩先を進める手助けをします。 – Variatus