+ -
当前位置:首页 → 问答吧 → outlook搜索文件夹

outlook搜索文件夹

时间:2010-09-08

来源:互联网

由于我邮箱里文件夹分的比较多,想写一个VBA脚本来实现搜索到我想找的文件夹的功能。具体的方法是:想在工具栏放一个搜索框,当在搜索框输入内容后,会根据输入的内容找到我的文件夹。请问这个可以实现吗?或者有其他方法可以实现吗?

作者: grassking   发布时间: 2010-09-08

能实现,用VBA。

作者: dsd999   发布时间: 2010-09-09

引用:
原帖由 dsd999 于 2010-9-9 09:08 发表
能实现,用VBA。
能给点提示么,我是新手,还不太会用VBA,谢谢了。

作者: grassking   发布时间: 2010-09-09

在outlook 的VBA界面把这个导入,然后执行addTotalButton

在输入框输入要查找的名字,按回车。

附件

Module11.rar(826 Bytes)

2010-9-9 14:51, 下载次数: 7

作者: dsd999   发布时间: 2010-09-09

引用:
原帖由 dsd999 于 2010-9-9 14:51 发表
在outlook 的VBA界面把这个导入,然后执行addTotalButton

在输入框输入要查找的名字,按回车。
非常感谢,Inbox下的一级文件夹可以搜索到了,但是二级文件夹还不行,我先去研究一下代码,不懂再请教您。

作者: grassking   发布时间: 2010-09-09

好的,不明白的问我。

作者: dsd999   发布时间: 2010-09-10

引用:
原帖由 dsd999 于 2010-9-10 09:17 发表
好的,不明白的问我。
我将搜索函数做了一些更改,通过一个递归调用将所有的文件夹都搜索出来,代码如下:
Sub ff()
    Dim dd As String
    dd = Outlook.ActiveExplorer.CommandBars("ExcelClub").Controls(1).text
    Dim currentf As folder   
    Set currentf = Application.ActiveExplorer.CurrentFolder      
    Call fsubf(currentf.Folders, dd)
End Sub

Public Sub fsubf(parentf As Folders, text As String)
    If parentf.Class = olFolders Then
        For n = 1 To parentf.Count
            Debug.Print parentf(n)
            If InStr(1, parentf(n), text) <> 0 Then
                Application.ActiveExplorer.SelectFolder (parentf(n))
                'Exit Sub
            End If
            Call fsubf(parentf(n).Folders, text)
        Next
    End If
End Sub

接下来想请教您的是,(1)输入框的onaction事件是点回车时发生的,有没有一个事件是当输入一个字母就发生? 我现在想实现边输入遍搜索,动态的将我输入的内容有关的文件夹显示出来。
    (2)将搜索到的文件夹全部显示出来的话,用什么组件比较好啊,我对outlook里的组件和一些API都还不是太熟悉,我想到的一个实现方案是,将搜索到的文件夹自动填充到一个dropdown list里面,当选择某个文件夹时就将这个文件夹打开。请问您有比较好的显示组件吗?
    (3)请问有哪些地方可以找到Outlook vba的api吗?我只能找到对象模型,对那些API不知道该怎么去学。
谢谢您的指导。

作者: grassking   发布时间: 2010-09-10

www.outlookcode.com

这个网站上的资源很多。

作者: dsd999   发布时间: 2010-09-13

引用:
原帖由 dsd999 于 2010-9-13 09:30 发表
www.outlookcode.com

这个网站上的资源很多。
谢谢,这个网站我看了,只是全是英文学起来有点慢,我那些功能基本上全部都实现了。Thanks for your prior work.

作者: grassking   发布时间: 2010-09-15

引用:
原帖由 grassking 于 2010-9-15 14:26 发表

谢谢,这个网站我看了,只是全是英文学起来有点慢,我那些功能基本上全部都实现了。Thanks for your prior work.
最好能给大家分享分享,谢谢。

作者: dsd999   发布时间: 2010-09-15

引用:
原帖由 dsd999 于 2010-9-15 14:32 发表



最好能给大家分享分享,谢谢。
好的。导入这两个文件后 运行addFinBar,可以将工具条加载进来。为了便于测试createFolder宏 是在当前文件夹下创建9*9*9个文件夹。鼠标点到哪个文件夹 就从哪个文件夹开始搜索,在text框中输入要搜索的文件夹名字,点回车,然后点击后面的comboBox控件,里面是搜索到的文件夹的path,选择一个想要的文件夹,就可以将此文件夹显示出来。Move Button 是选择几个邮件后,点一下这个按钮,就可以将这些邮件Move到刚才选中的文件夹中。

附件

FindBar.zip(1.18 KB)

2010-9-15 15:03, 下载次数: 0

ThisOutlookSession.zip(974 Bytes)

2010-9-15 15:03, 下载次数: 0

作者: grassking   发布时间: 2010-09-15

引用:
原帖由 grassking 于 2010-9-15 15:03 发表

好的。导入这两个文件后 运行addFinBar,可以将工具条加载进来。为了便于测试createFolder宏 是在当前文件夹下创建9*9*9个文件夹。鼠标点到哪个文件夹 就从哪个文件夹开始搜索,在text框中输入要搜索的文件夹名字, ...
谢谢楼主。

作者: dsd999   发布时间: 2010-09-16