用VBA提取Outlook联系人信息
我试图从Outlook中联系人的联系人信息部分提取电子邮件地址,但是,我无法访问右键单击联系人并导航到用VBA提取Outlook联系人信息,vba,email,outlook,contacts,Vba,Email,Outlook,Contacts,我试图从Outlook中联系人的联系人信息部分提取电子邮件地址,但是,我无法访问右键单击联系人并导航到Outlook属性>电子邮件地址时显示的相同数据 如何以编程方式访问此文件 ContactItem.Email1Address 返回或设置表示第一个用户的电子邮件地址的字符串 联系人的电子邮件条目。读/写 具有可为此任务修改的报告脚本。基本上,您可以设置ContactFolder=Session.GetDefaultFolder(olFolderContacts),然后对ContactFo
Outlook属性>电子邮件地址时显示的相同数据
如何以编程方式访问此文件
ContactItem.Email1Address
返回或设置表示第一个用户的电子邮件地址的字符串
联系人的电子邮件条目。读/写
具有可为此任务修改的报告脚本。基本上,您可以设置ContactFolder=Session.GetDefaultFolder(olFolderContacts)
,然后对ContactFolder.Items中的每个currentItem循环执行,检查classclass=olContact
,然后获取currentItem.Email1地址
返回或设置表示第一个用户的电子邮件地址的字符串
联系人的电子邮件条目。读/写
具有可为此任务修改的报告脚本。基本上,您可以设置ContactFolder=Session.GetDefaultFolder(olFolderContacts)
,然后对ContactFolder.Items
中的每个currentItem循环执行,检查classclass=olContact
,然后获取currentItem.Email1地址
返回或设置表示第一个用户的电子邮件地址的字符串
联系人的电子邮件条目。读/写
具有可为此任务修改的报告脚本。基本上,您可以设置ContactFolder=Session.GetDefaultFolder(olFolderContacts)
,然后对ContactFolder.Items
中的每个currentItem循环执行,检查classclass=olContact
,然后获取currentItem.Email1地址
返回或设置表示第一个用户的电子邮件地址的字符串
联系人的电子邮件条目。读/写
具有可为此任务修改的报告脚本。基本上,您可以设置ContactFolder=Session.GetDefaultFolder(olFolderContacts)
,然后对ContactFolder中的每个currentItem循环执行。Items
,检查classclass=olContact
,然后获取currentItem.Email1Address
您上面的不是联系人,这是GAL地址条目。屏幕截图中的数据存储在PR_EMS_AB_PROXY_ADDRESSES MAPI属性(DASL namehttp://schemas.microsoft.com/mapi/proptag/0x800F101F
)
下面的脚本将显示Outlook中当前选定邮件的前发件人的代理地址:
Set msg = Application.ActiveExplorer.Selection(1)
Set vSender = msg.Sender
vProxyAddresses = vSender.PropertyAccessor.GetProperty("http://schemas.microsoft.com/mapi/proptag/0x800F101F")
For Index = LBound(vProxyAddresses) To UBound(vProxyAddresses)
MsgBox vProxyAddresses(Index)
Next
您上面的不是联系人,这是GAL地址条目。屏幕截图中的数据存储在PR_EMS_AB_PROXY_ADDRESSES MAPI属性(DASL namehttp://schemas.microsoft.com/mapi/proptag/0x800F101F
)
下面的脚本将显示Outlook中当前选定邮件的前发件人的代理地址:
Set msg = Application.ActiveExplorer.Selection(1)
Set vSender = msg.Sender
vProxyAddresses = vSender.PropertyAccessor.GetProperty("http://schemas.microsoft.com/mapi/proptag/0x800F101F")
For Index = LBound(vProxyAddresses) To UBound(vProxyAddresses)
MsgBox vProxyAddresses(Index)
Next
您上面的不是联系人,这是GAL地址条目。屏幕截图中的数据存储在PR_EMS_AB_PROXY_ADDRESSES MAPI属性(DASL namehttp://schemas.microsoft.com/mapi/proptag/0x800F101F
)
下面的脚本将显示Outlook中当前选定邮件的前发件人的代理地址:
Set msg = Application.ActiveExplorer.Selection(1)
Set vSender = msg.Sender
vProxyAddresses = vSender.PropertyAccessor.GetProperty("http://schemas.microsoft.com/mapi/proptag/0x800F101F")
For Index = LBound(vProxyAddresses) To UBound(vProxyAddresses)
MsgBox vProxyAddresses(Index)
Next
您上面的不是联系人,这是GAL地址条目。屏幕截图中的数据存储在PR_EMS_AB_PROXY_ADDRESSES MAPI属性(DASL namehttp://schemas.microsoft.com/mapi/proptag/0x800F101F
)
下面的脚本将显示Outlook中当前选定邮件的前发件人的代理地址:
Set msg = Application.ActiveExplorer.Selection(1)
Set vSender = msg.Sender
vProxyAddresses = vSender.PropertyAccessor.GetProperty("http://schemas.microsoft.com/mapi/proptag/0x800F101F")
For Index = LBound(vProxyAddresses) To UBound(vProxyAddresses)
MsgBox vProxyAddresses(Index)
Next
我使用了它,但它返回空字符串。通过Visual Basic编辑器中的“本地人”窗口查看,所有电子邮件参数都有空值。@是否填充了任何其他contactItem属性?我不理解您的问题@C8H10N4O2。何时填充?我使用了它,但它返回空字符串。通过Visual Basic编辑器中的“本地人”窗口查看,所有电子邮件参数都有空值。@是否填充了任何其他contactItem属性?我不理解您的问题@C8H10N4O2。何时填充?我使用了它,但它返回空字符串。通过Visual Basic编辑器中的“本地人”窗口查看,所有电子邮件参数都有空值。@是否填充了任何其他contactItem属性?我不理解您的问题@C8H10N4O2。何时填充?我使用了它,但它返回空字符串。通过Visual Basic编辑器中的“本地人”窗口查看,所有电子邮件参数都有空值。@是否填充了任何其他contactItem属性?我不理解您的问题@C8H10N4O2。何时填充?但如果我没有消息怎么办?我最初想做的是:Excel中用户的用户名与Windows凭据中的用户名相同。此外,这个用户名可以在我在表格的截图中附上的电子邮件列表中找到username@company.com“。我想在Excel中使用用户的用户名,在outlook中查找哪个联系人有此电子邮件,然后检索用户的名称。”。不必搜索电子邮件的发件人就可以了吗?在这种情况下,请调用Application.Session.CreateRecipient传递要解析的名称,然后调用Recipient.Resolve。如果返回true,请使用Recipient.AddressEntry对象。我不太确定我是否能够按照你说的做。不过,我明天会在工作中尝试,我会告诉你我的结果。顺便说一句,我在中找到了你的一些评论,我也会看看。根据Microsoft MSDN,“CreateRecipient”部分中的参数是一个名称。然而,我所知道的唯一一件事是其中一封smtp电子邮件,它的模式类似于k012345@conpany.com“我正在寻找屏幕截图所示列表中包含此电子邮件的帐户名称。我还能用你建议的方法吗