1

電子メールの本文に移動すると自動的に実行され、受信者の電子メール アドレスを確認するマクロを作成しています。

変数にロードする受信者のアドレスを取得できません。

Sub BuildTable()
Dim myItem As Outlook.MailItem
Dim myRecipient As String
Set myItem = Application.CreateItem(olMailItem)
Set myRecipient = myItem.Recipient.Address
....
4

3 に答える 3

0

MSOutlookとアクティブインスペクターで実行しているようです。おそらく次のようになります。

Sub CheckAddresses()
Dim oEmail As Outlook.MailItem
Dim r As Recipient
Dim rList As Recipients

Set oEmail = Application.ActiveInspector.CurrentItem

Set rList = oEmail.Recipients
rList.ResolveAll
For Each r In rList
    Debug.Print r.Address
Next
End Sub
于 2013-02-02T01:23:38.370 に答える
0

これは、コードのこの部分が最終的に次のようになったものです。

Sub BuildTable1()

Dim oEmail As Outlook.MailItem

Set oEmail = Application.ActiveInspector.currentItem

Set xlApp = CreateObject("Excel.Application")
xlApp.Application.Visible = True
xlApp.workbooks.Open FileName:= file location

xlApp.WorkSheets("Contacts").Activate
xlApp.Range("A6").Value = oEmail.To


//filtering by value, copying, pasting, etc.
End Sub

-ZL

于 2013-02-05T22:23:09.487 に答える
0

お使いの Outlook のバージョンはわかりませんが、Microsoft ( http://msdn.microsoft.com/en-us/library/office/aa211006(v=office.11 ​​) .aspx ) によると、 .Recipients(Index) を使用して受信者を取得します。そこからアドレスを取得することができます。Outlook 2000 (eww) を参照しているものの、.Recipients に関連付けられたある種の ResolveAll メソッドについての言及も見ました。

やってみる

Dim myItem As Outlook.MailItem
Dim myRecipient as String
Set myItem = Application.CreateItem(olMailItem)
Set myRecipient = myItem.Recipients.Item(0).Address

これにより、最初の受信者のアドレスが得られます (VBA がインデックス 0 と 1 のどちらから始まるか覚えていないことに注意してください。IndexOutOfRange を取得した場合は、1 に変更します)。他に必要な場合は、ループを実行する必要があります。このようなもの:

For Each Recipient in myItem.Recipients
// do some stuff here
Next Recipient

お役に立てれば。

于 2013-02-01T23:52:17.463 に答える