outlook2010 联系人卡片 vba怎么调用
发布网友
发布时间:2022-04-22 06:08
我来回答
共2个回答
热心网友
时间:2023-07-16 23:52
Gmail通讯录与Outlook通讯录进行同步操作,而往往只是要更新某个类别的用户信息。Outlook菜单只支持全部导出通讯录信息为csv文件。而当想要只输出某一类别(如"同学.高中"时)则要先输出为Excel表格,再筛选转换成csv文件。
Outlook是Office组件之一,其支持VBA自动化对象。
代码如下
Sub ExportVCards()
Dim objNS As NameSpace '命名空间
Dim objContactFolder '通讯录目录
Dim objEntry As Variant 'OEM条目
Dim objContactEntry As ContactItem '通讯录条目
Dim count As Integer '计数器
Dim CategoriesName As String '类别名称
Dim ExportFolder As String '输出目录
CategoriesName = "同学.中学"
ExportFolder = "e:\\temp\\contacts\\"
count = 0
Set objNS = Application.GetNamespace("MAPI") '连接到命令空间中,这是直接在Outlook中运用宏时获取命令句柄的方法
Set objContactFolder = objNS.GetDefaultFolder(olFolderContacts) '转到通讯录目录中
For Each objEntry In objContactFolder.Items '遍历通讯录目录
If Not TypeOf objEntry Is ContactItem Then
If TypeOf objEntry Is DistListItem Then
Debug.Print "Found a distribution list, skipping"
Else
Debug.Print "****** found a something odd ****"
Debug.Print " " & objEntry
End If
Else
Set objContactEntry = objEntry
If CategoriesName = objEntry.Categories Then
count = count + 1
path = ExportFolder & "contact" & count & ".vcf"
objContactEntry.SaveAs path, olVCard '将该条目输出到目录中
End If
End If
Next
Set objNS = Nothing
End Sub
经过上述代码后,将该类别所有的通信联系人条目输出到单个文件中,再用命令将所有文件合并起来,我采用的方法是 Cygwin 的Cat 命令,即
cat contact*.vcf > all.vcf
这样导入到Gmail后,再用Merge整合重复的人员即可
热心网友
时间:2023-07-16 23:52
下面的代码可以导出OUTLook联系人,从中适当修改就可以
Sub ExportVcards()
Dim MyContacts As Outlook.MAPIFolder
Dim ContItem As Outlook.ContactItem
Dim FileName As String
Set MyContacts = Application.GetNamespace("MAPI").GetDefaultFolder(olFolderContacts)
For Each ContItem In MyContacts.Items
FileName = "d:\Contacts\" & ContItem.FileAs & ".vcf" '文件夹不存在会出错
ContItem.SaveAs FileName, olVCard
Next
End Sub
For Each循环里面可以使用下面的代码获得联系人名字及邮箱:
姓名=contitem.FullName
邮箱=contitem.Email1Address ‘(最多3个邮箱)
也可以mycontacts.Items("韩 梅梅").Email1Address 从全名得到她的地址。
追问如果想访问里联系人卡片中的部门呢
我在运用Excel VBA编写程序调用outlook发送邮件的时候出现的问题...
我是用office2010的,打开outlook后点文件-选项-信任中心-信任中心设置-编程访问-选“从不向我发送……”。选这个有一定的危险性,容易被病毒使用你的邮箱。
OutLook 2010 怎么用VBA实现:当你写完一封邮件,点击发送时,判断有没有...
Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)Dim myOlApp As New Outlook.Application Dim myItem As Outlook.MailItem Dim myAttachments As Outlook.Attachments Dim cancelsend As Long Set myItem = myOlApp.CreateItem(olMailItem)Set myAttachments = myItem.Attac...
在Outlook 2013中,如何通过VBA编程,实现每隔1分钟,对指定收件夹中邮件...
在Outlook 2013中,如何通过VBA编程,实现每隔1分钟,对指定收件夹中邮件进行处理。 10 不是Outlook自带的每隔1分钟接收邮件,再通过规则处理邮件的方式。... 不是Outlook自带的每隔1分钟接收邮件,再通过规则处理邮件的方式。 展开 我来答 分享 微信扫一扫 网络繁忙请稍后重试 新浪微博 QQ空间 举报 浏览16 ...
outlook邮箱 多层文件夹下的多个附件中的PDF附件,VBA代码,提取到桌面文 ...
我的 outlook邮箱 多层文件夹下的多个附件中的PDF附件,VBA代码,提取到桌面文件夹; 多个附件中的PDF文件都是同名,需按提取先后命名PDF文件;邮箱文件夹附件中的附件提取,VBA提取很难;参考:http://club.excelhome.net/forum.php?mod=viewthread&tid=946778&extra=p... 多个附件中的PDF文件都是同名,需按提取先后命...
outlook怎么禁用vba的发送邮件功能
outlook禁用vba的发送邮件功能步骤如下:1、打开outlook,并进入“开发人员”选项卡。2、点击“VisualBasic”按钮,打开VBA编辑器。3、在VBA编辑器中,选择“这台计算机上的项目”下拉菜单中的“Outlook项目”。4、在“项目资源”窗格中,双击“这台计算机上的项目”文件夹。5、双击“此电脑”文件夹,...
如何用VBA代码控制OUTLOOK发送邮件
'我一直是这样用的Sub SendMail()Set myOlApp = CreateObject("Outlook.Application")Set objMail = myOlApp.CreateItem(olMailItem)With objMail .To = "收件人邮箱地址" .Subject = "邮件主题" .Body = "邮件正文内容" .Attachments.Add "附件完整路径,如:D:\1.docx" .Sen...
如何用VBA实现Excel日程安排添加到outlook2010日历中
可以在excel中使用vba完成.假设要提醒的事件名称在A列,提醒时间在B列.格式如下 事件名称提醒时间 测试12012-1-6 15:50 测试22012-1-7 15:50 测试32012-1-8 15:50 按ALT+F11>工具>引用>勾选 MS OUTLOOK 14.0 OBJECT LIBRARY (14是2010的版本根据自己的office版本选择)然后按住ALT按I M 粘贴...
outlook2010中,如何用vba来替换正文中的空格符为回车呢?
选 中正文内容执行如下代码:Selection.Replace What:=" ", Replacement:=Chr(10)
电脑公司win7系统下让outlook自动定期更新邮件的技巧
1、编制自动方案代码,首先启动Outlook2010,然后按下Alt+F11组合键,启动VBA编辑器,在代码窗口左侧点击ThisOutlookSession,然后在右侧代码窗口中输入如下代码:Sub Application_Startup()Set oApp = Outlook.Application Set oMessage = oApp.CreateItem(olMailItem)oMessage.To = wangxiang169@163.com ...
VBA在Outlook里没有生效
奇怪,我在自己电脑上试了所有步骤和脚本,工作相当正常。你确信你的代码是在VBA中双击“ThisOutlookSession”之后打开的编辑区中录入的吗?