【2008年10月22日】 可以读取 OutLook2003联系人并保存在一个文本文件中的VBA程序。当年我主要就是依靠它编写了一个桌面上的公司地址薄,除了根据人名查电话,还提供了反查的功能

 

下面的程序段(VBA)可以将Outlook中的联系人dump到文件中。如果你们公司有那种全部联系人的通讯录(全球联系人),

你可以先将全部联系人保存到你本机的联系人中,然后运行下面的程序。之后,你就可以在c:下面找到 Text.txt 。里面

包含了全部联系人名单和电话号码... ...2年之前,我就用这样的方法将全部联系人dump出来,编写Delphi程序以资源方式

引用,从而实现本地的地址簿。

程序不完善,虽然可以直接将DistroList中的写入文件中,但是不能保存Recipient的信息(组信息)。

											2008年11月22日
Private Sub copyDistroList()

On Error GoTo errHandler

    Dim myOlApp As New Outlook.Application
    Dim myNameSpace As Outlook.NameSpace
    Dim myFolder As Outlook.MAPIFolder
    Dim myDistList As Outlook.DistListItem  'source distribution list contains all contacts
    Dim myDistList1 As Outlook.DistListItem 'target distribution list containing contacts A-L
    Dim myDistList2 As Outlook.DistListItem 'target distribution list containing contacts M-Z
    Dim myFolderItems As Outlook.Items
    Dim myRcpnt As Outlook.Recipient

    Dim intIterateContactItems As Integer   'track contact items
    Dim intIterateDLMemberItems As Integer  'track distribution members
    Dim intCountContactItems As Integer     'count contact items
    Dim intCountDLMemberItems As Integer    'count distribution members within list

    Dim strSourceDistList As String         'source distro list name container
    Dim strTargetDistList1 As String        'target 1 distro list name container
    Dim strTargetDistList2 As String        'target 2 distro list name container
    Dim blnListFound As Boolean             'track if source distro list was found

     Dim objSAE      ' As Redemption.AddressEntry
     Dim myItem As Outlook.ContactItem

    strSourceDistList = "KS"          'name of source distro list
    strTargetDistList1 = "test1"        'name of target 1 distro list
    strTargetDistList2 = "test2"        'name of target 2 distro list

    'create Outlook objects
    Set myNameSpace = myOlApp.GetNamespace("MAPI")
    Set myFolder = myNameSpace.GetDefaultFolder(olFolderContacts)
    Set myFolderItems = myFolder.Items
    Set myDistList1 = myOlApp.CreateItem(olDistributionListItem)
    Set myDistList2 = myOlApp.CreateItem(olDistributionListItem)

    'intialize variables
    myDistList1.DLName = strTargetDistList1
    myDistList2.DLName = strTargetDistList2
    blnListFound = False

    Const fsoForAppend = 8
    Const PR_CELLULAR_TELEPHONE_NUMBER = &H3A1C001E

    Dim objFSO
    Dim objTextStream

    Set objFSO = CreateObject("Scripting.FileSystemObject")
    Set objTextStream = objFSO.OpenTextFile("C:\Test.txt", fsoForAppend)
     'replace with your filename & path

    'assign the count of all contact items to variable
    intCountContactItems = myFolderItems.Count

    'iterate through all Outlook contact items until the source distro list is located
    For intIterateContactItems = 1 To intCountContactItems

        'check to see if the contact item is a distribution list type
        If TypeName(myFolderItems.Item(intIterateContactItems)) = "DistListItem" Then

            'set the myDistList object as the DistListItem
            Set myDistList = myFolderItems.Item(intIterateContactItems)

            'check to see if the distro list is correct source list
            If myDistList.DLName = strSourceDistList Then

                'assign the distro list member count to variable
                intCountDLMemberItems = myDistList.MemberCount

                'iterate through all members of the distro list
                For intIterateDLMemberItems = 1 To 2
                'intCountDLMemberItems

                    'get the member name, create the recipient, and assign to object variable
                    Set myRcpnt = myOlApp.Session.CreateRecipient(myDistList.GetMember(intIterateDLMemberItems).Address)
                    Set myItem = Application.CreateItem(olContactItem)

                    'ensure the recipient can be resolved in the Exchange director
                    myRcpnt.Resolve

                    'is recipient name resolved?
                    If myRcpnt.Resolved = True Then
                    Set objSAE = myRcpnt.AddressEntry

                            objTextStream.WriteLine myRcpnt.Name

                       myItem.FullName = myRcpnt.Name
                       myItem.Email1Address = myRcpnt.Address
                            objTextStream.WriteLine myItem.BusinessTelephoneNumber & "sss"

                       myItem.ForwardAsVcard

                       myItem.Save

                    'if recipient is not resolved then warn the user and move on to the next distro list member
                    Else
                        MsgBox "Sorry, I could not resolve the email address for " & _
                                myDistList.GetMember(intIterateDLMemberItems).Name & "." & _
                                vbCrLf & "Please write this information down and verify." & _
                                vbCrLf & "I will move on with the list.  Click okay " & _
                                "to continue.", vbOKOnly + vbCritical, "NOT RESOLVED"
                        Resume Next
                    End If

                    'Debug.Print myDistList.GetMember(intIterateDLMemberItems).Name & _
                                ", " & myDistList.GetMember(intIterateDLMemberItems).Address

                'get the next member of the distro list
                Next intIterateDLMemberItems

                'save the new distro lists
                myDistList1.Save
                myDistList2.Save
                'source distro list was found, so set variable to true
                blnListFound = True
                'since the source distro list is found, there is no need to continue with the contact items iteration
                Exit For
            End If
        End If

    'get the next item within Contacts
    Next intIterateContactItems

     'Close the file and clean up
    objTextStream.Close
    Set objTextStream = Nothing
    Set objFSO = Nothing

    'raise message box if source distro list was not found
    If blnListFound = False Then
        MsgBox "Your Source Distribution List was not found", vbOKOnly + vbInformation, "DISTRO LIST NOT FOUND"
    End If

setAllToNothing:
    'end of subroutine, so ensure all objects are emptied
    If Not myOlApp Is Nothing Then
        Set myOlApp = Nothing
    End If

    If Not myNameSpace Is Nothing Then
        Set myNameSpace = Nothing
    End If

    If Not myFolder Is Nothing Then
        Set myFolder = Nothing
    End If

    If Not myDistList Is Nothing Then
        Set myDistList = Nothing
    End If

    If Not myDistList1 Is Nothing Then
        Set myDistList1 = Nothing
    End If

    If Not myDistList2 Is Nothing Then
        Set myDistList2 = Nothing
    End If

    If Not myFolderItems Is Nothing Then
        Set myFolderItems = Nothing
    End If

    If Not myRcpnt Is Nothing Then
        Set myRcpnt = Nothing
    End If

    Exit Sub

errHandler:

    MsgBox Err.Number & " " & Err.Description, vbCritical + vbOKOnly, "ERROR"
    Resume setAllToNothing

End Sub

 

【2008年10月19日】 网站再次恢复。原来的域名 www.begin.org.cn 无法恢复,只好重新请Nihg帮我申请了新的域名:www.asdqwe.cn 貌似很奇怪的名称,也没有意义,不过你在键盘上多输入几次就知道还是很方便输入的了。转眼间,之前的页面竟然用了快3年,正好借这个机会重新做了一下网站。之前的页面是这样的。我是用的是 Free website templates 网站提供的模板。看上去非常简洁的风格,我很喜欢。网速慢的朋友浏览的速度也会很快。

网站再次恢复。原来的域名 www.begin.org.cn 无法恢复,只好重新请Nihg帮我申请了新的域名:www.asdqwe.cn 貌似很奇怪的名称,也没有意义,不过你在键盘上多输入几次就知道还是很方便输入的了。转眼间,之前的页面竟然用了快3年,正好借这个机会重新做了一下网站。之前的页面是这样的。我是用的是 Free website templates 网站提供的模板。看上去非常简洁的风格,我很喜欢。网速慢的朋友浏览的速度也会很快。

[June , 18, 2008] 最近工作很忙。因为没有登记,空间被关闭了一段时间。现在迁移到了Nihg朋友的空间中,在此表示感谢。上个月表演节目,编写了一个短剧: 《西行漫记》

西行漫记

 

(音乐)

旁白: 师徒三人前去西方取经,一天经过关村,中部,俗称中关村。

 

悟空:师傅前面有妖气,此乃凶兆!

八戒:摸自己胸部… ....

唐僧: (看八戒) 哪里哪里?

(三人走,转场)

 

白骨精:(上场)身份证 毕业证 结婚证 光盘 VCD,要不要?

八戒:(害羞表情)有片么?,有李亚鹏配音的么

白骨精:有。

八戒:(兴奋)有日本的么?

白骨精:有。

八戒:(激动)有带字幕的吗?

白骨精:(迟疑)有。

八戒:(更加激动)有李亚鹏配音的么?

白骨精:(尴尬无语)… …

 

唐僧:八戒,你又犯戒了~(一把拉过八戒,自己上前)

(严肃认真)这位施主,我们自东土大唐二来,旅途劳顿,准备买点发票回大唐报销。

白骨精:(四处张望一下)有,要多少?

唐僧:(兰花指,计算状)区区3000两而已~ 敢问施主,是机打还是手撕?我可只要机打的。

白骨精:随我而来… …

 

(悟空上场)

 

悟空:(看到白骨精,大叫)妖怪啊~ (上前,挥棒)

白骨精:叫“条子来了”。

(悟空拉着白骨精,到角落,挥棒打之)

八戒:(伸脖子)我的光盘……

唐僧:发票….

(悟空回来)

唐僧:你以为你是城管吗,怎么见人就打啊~ 不是已经答应师傅,为何还如此冥顽不化!

(悟空,生气,无语)

 

旁白:悟空一气之下,回了花果山。刚刚赶走了悟空,突然平地挂起大风(风声)

唐僧:打雷了,沙尘暴又来了。

(一个mm上场将唐僧卷走)

八戒:(喊)师傅,等一等!

唐僧:(甩头,回头一笑)用了飘柔更自信。八戒你就别追了,别误了师傅的好事。

 

八戒:(犯愁,思考状。拿出阳光服务卡,面相观众)800 Call Center。

旁白:普通话服务请按1,英语请按2。

八戒:我选1。

旁白:东北话,请按3;河南话,请按4;不需要服务:请挂机。找观音姐姐聊天,请按1277867(快速读)。

八戒:我靠,我还得再听一边?

旁白:观音117 为您服务

观音:喂,你好,观音在线。有什么需要帮助的?

八戒:姐姐,我唐僧师傅被妖精抓走了。

观音:您是我们的VIP用户,我们可以为您提供定点清除服务。

八戒:(自言自语)我还等着光盘哪。(对电话说)有其他服务么?

观音:您是我们的VIP用户,我们还可以提供上门服务。需要请按#。

旁白:(嗖)

(观音闪现,八戒下了一跳)

八戒:我靠,怎么一点声音都没有。

观音:你没有听到“嗖~”的一声么。

(观音姐姐拿出一本宝典,交给八戒)

观音:(深情)你要么?

八戒:(点头)我要~

(观音不松手)

观音:你要你就说,你不说我怎么知道,你说了我又不是不给你~

(双方用力抢,八戒忍无可忍,双手抓过)

 

旁白:此后,八戒研究MOT…….(Z.t注:我上的就是这个课,根据需要可以修改为3DB,八个要脸八个不要脸的都可以)

旁白:第一页:与练此功,必先自宫。

(八戒出门,惨叫,冲马桶的声音,转身回来)

八戒:(高叫)我悟到了(仰天长啸)大师兄终于不用被fair了

 

旁白:转眼间,八戒来到了花果山,找到了悟空。将宝典交给了悟空。

悟空:(看八戒)二师弟,怎么变白了?

八戒:大师兄,你也变胖了。

旁白: 说话间,悟空翻到了第一页。

悟空:(深情的看着八戒)二师弟辛苦了。(递给八戒一杯水)

八戒:没什么,我只是失去了一点点。以后还可以加入演艺圈(juan)。

(悟空继续看)

旁白:第二页,如不自宫,也可成功。

八戒:喷水,

吾空:MOT Moment of Tolit 师傅有救了,行动!

 

 

 

 

场景:美女给唐曾捶背。

唐僧:(对八戒)八戒你怎么来了,快跑吧,这年头你的肉比我值钱多了。

(对悟空说)悟空你也来了,我们公司离职3个月内不允许回来的。

美女:对唐僧说:先生你已经到钟了

唐僧:记得给我开发票哈。台头写上:Senovo。

悟空:师傅你身后的女人是妖精,怎么办?

唐僧:人是人她妈生的,妖是妖她妈生的,我们要有一颗仁慈的心。 让她走吧。

 

大家齐唱 Only You

 

 

[May , 9, 2008] 五三记

            五三记 中关村的水啊深又深

      又是“五一”,这是我在北京度过的第一个劳动节,三天假期。

      本打算去“家*乐*福”看看热闹,正好有事情,没去成。等到有空了,在网上

搜索“家*乐*福”惊奇的发现无论是baidu还是google都表示“这个东西不存在”。汗。

缩短关键字绕过去,找到某人的blog,似乎什么都没发生。想必也是真的没有发生

什么吧,大家还是相应了xxx的号召,度过了一个平和安详的劳动节。

      3号,被隔壁装修的电钻吵醒。起来准备上街。天色昏暗,一眼望去,竟然有黄昏

的错觉,天,非常严肃的阴沉着。带伞,外套。逛街去了~

      先去银行,开通可以支付的网上银行,交水煤气费会省事许多,到了北大北门只见

上面挂着横幅“庆祝北大建校110周年”。有很多人在照相,白天照出夜景效果。我拿出

手机拍了张,回来一看:果真是夜晚的效果,除了灯泡耀出的光点,其余部分一片漆黑。

回来baidu一下,“北京大学创建于1898年”,历史真的蛮长的,同西南交大有得一拼。

清华建校于1928年,原来以为他们是一起建立的。现在知道北大是清华他爹那辈的了。

     天色越发阴沉,仿佛晚上七八点。路上的车都打开了前灯,楼中也都开了灯。

走着走着,我头顶一闪,心中一紧,不由得快“走”了起来。虽然江湖传闻,雷公雷母

只打坏人,但是,没准有打歪的时候。一阵小跑,穿过马路,翻越护栏,冲进了工商

银行。刚进门,伴随着巨大的雷声,外面的雨下起来了。

     这家银行位于中关村图书大厦附近,周末人很少,莫非是因为附近没有住宅区?

门口牌子上提示,您可能需要等待20分钟,但是排号大约只有2分钟就到了。我要开户,

实践证明,银行之间关于网上银行的规定差别还是挺大的。比如,招商银行,只容许

开设一个网上银行账号,其余的无论你是在什么地方办的账号只能挂在这个账号

下面。我去开户的时候,对方突然问我以前是不是开设过账号?我想了一下,敢情

1999年在学校的时候开过,里面还有50元,卡还在我手中,密码已经忘记了很多年。

工商银行,你可以开多个。比如,我在昆山开过一个网上银行,现在北京又可以开一个。

刚开始服务小姐不知道,本打算将昆山账号帮我注销掉。后来才发现可以同时开设2个的。

    之后我又去中关村图书大厦转了一圈,书非常多,办个会员卡就可以打8折,和网上

购书差别不大,最主要是网上购书配送总是瓶颈。转了2个多小时。相中了几本书,用手机

拍下封皮,等以后有时间有精力再来买。我现在最大的问题是没有时间和精力来看书。

床上一本《联想风云》,已经翻看了个把星期,竟然还没有看完,惭愧之极。

    中午吃的麦当劳,注意到他的门都是从里面向外推的,后来又光顾了一下肯德基

(不是吃东西)发现它的门也是这样的。不知道其他的麦肯店是不是也是这样的呢?

吃麦当劳,点了一份套餐,装可乐的是非常夸张的带吸管的塑料杯。端的时候,服务员

特地提醒,请用双手,容易翻... ...等我坐下了,边上来了几个学生就给我表演了一下

单手拿托盘,他们的杯子哗的一下翻了~ 水淹七军。

    顶风冒雨,打算去买个小灵通,公司晚上经常开电话会议,只有固定电话或者小灵通

接入才是免费的,而我的住地没有固定电话,一般是在楼下的IC卡机器上拨打。拨打免费,

但是,深更半夜,一个精壮的男人,胯下红色的自行车,占着电话机一言不发,一听就是

1个小时,难免招来怀疑的目光。

    海龙,鼎好门口聚集着很多拉客的人,他们用“秃鹫”的眼神打量着每一个过往者。

口中念到,数码相机看一下,笔记本电脑看一下。有时候还会拉你,让人很不舒服。据说

他们给拉上一位客人到某个摊位,就会有几十元的提成。转了半天,智能手机很多,黑莓

手机很多,小灵通没有。

    转出去,准备到对面的科贸看看。过了马路,对面有一家华信通电讯,店面挺大,看起

来很正规。进去问了一下价格,感觉不贵,就在那里买了部ZTE V190,花了399,又买了张

充值卡。回来上网一查,这部小灵通报价在100-150,被人宰了。更不幸的是,我发现

将小灵通的SIM卡,放在公司的小灵通上竟然也可以用。早知道买个号码就可以了。

    总结:中关村水很深,到哪里买东西最好现在网上查询好。然后,进去只买你查好的那个

东西,其余不计。唉,这次是花钱买个教训吧。