Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用VBA提取Outlook联系人信息_Vba_Email_Outlook_Contacts - Fatal编程技术网

用VBA提取Outlook联系人信息

用VBA提取Outlook联系人信息,vba,email,outlook,contacts,Vba,Email,Outlook,Contacts,我试图从Outlook中联系人的联系人信息部分提取电子邮件地址,但是,我无法访问右键单击联系人并导航到Outlook属性>电子邮件地址时显示的相同数据 如何以编程方式访问此文件 ContactItem.Email1Address 返回或设置表示第一个用户的电子邮件地址的字符串 联系人的电子邮件条目。读/写 具有可为此任务修改的报告脚本。基本上,您可以设置ContactFolder=Session.GetDefaultFolder(olFolderContacts),然后对ContactFo

我试图从Outlook中联系人的联系人信息部分提取电子邮件地址,但是,我无法访问右键单击联系人并导航到
Outlook属性>电子邮件地址时显示的相同数据

如何以编程方式访问此文件

ContactItem.Email1Address
返回或设置表示第一个用户的电子邮件地址的字符串 联系人的电子邮件条目。读/写

具有可为此任务修改的报告脚本。基本上,您可以设置ContactFolder=Session.GetDefaultFolder(olFolderContacts)
,然后对ContactFolder.Items中的每个currentItem循环执行
,检查class
class=olContact
,然后获取
currentItem.Email1地址

返回或设置表示第一个用户的电子邮件地址的字符串 联系人的电子邮件条目。读/写

具有可为此任务修改的报告脚本。基本上,您可以设置ContactFolder=Session.GetDefaultFolder(olFolderContacts)
,然后对ContactFolder.Items
中的每个currentItem循环执行
,检查class
class=olContact
,然后获取
currentItem.Email1地址

返回或设置表示第一个用户的电子邮件地址的字符串 联系人的电子邮件条目。读/写

具有可为此任务修改的报告脚本。基本上,您可以设置ContactFolder=Session.GetDefaultFolder(olFolderContacts)
,然后对ContactFolder.Items
中的每个currentItem循环执行
,检查class
class=olContact
,然后获取
currentItem.Email1地址

返回或设置表示第一个用户的电子邮件地址的字符串 联系人的电子邮件条目。读/写


具有可为此任务修改的报告脚本。基本上,您可以设置ContactFolder=Session.GetDefaultFolder(olFolderContacts)
,然后对ContactFolder中的每个currentItem循环执行
。Items
,检查class
class=olContact
,然后获取
currentItem.Email1Address
您上面的不是联系人,这是GAL地址条目。屏幕截图中的数据存储在PR_EMS_AB_PROXY_ADDRESSES MAPI属性(DASL name
http://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 name
http://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 name
http://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 name
http://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“我正在寻找屏幕截图所示列表中包含此电子邮件的帐户名称。我还能用你建议的方法吗