Prohledat tento blog

čtvrtek 8. září 2011

Chytrá složka pro projekty (GTD v Outlooku)

V článku GTD v Outlooku II/4 – Chytrá složka pro projekty byl publikován návod, jak prostřednictvím maker vytvořit vyhledávací složku, která sdružuje veškeré položky v Outlooku, které se týkají konkrétního projektu. Příslušnost položky k projektu je určen zvolenou kategorií.

Vzhledem k tomu, že ve své implementaci GTD v Outlooku využívám pro přiřazení položky k projektu “uživatelské pole”, nebyl tento postup přímo použitelný. Prostě mi to nějak nefungovalo.

Ale nedávno mne Michal Franc (za což mu děkuji) upozornil na to, že je možné kombinovat makro (které automaticky vytvoří vyhledávací složku prohledávající úkoly a přiřadí jí potřebná kritéria) a ruční úpravu, které do vyhledávání zařadí i složku doručené pošty. A odsud už byl jen skok k takové úpravě makra, která toto vše udělá automaticky. Zkrátka do vyhledávací složky automaticky zahrne více než jednu složku.

Sub SlozkaProProjekt()
    
    Dim MapiNamespace As NameSpace
    Dim TasksFolder As Folder
    Dim strS As String
    Dim taskFilter As String
    Dim projectName As String
    Dim strTag As String
    Dim objSch As Search
       
    Set MapiNamespace = Application.GetNamespace("MAPI")
    'zde je možné přidat libovolné množství složek, které se budou prohledávat
    strS = AddSearchScope("", MapiNamespace.GetDefaultFolder(olFolderTasks).FolderPath)
    'tato složka musí být přidána jako poslední
    strS = AddSearchScope(strS, MapiNamespace.GetDefaultFolder(olFolderInbox).Parent.FolderPath)
    
    projectName = InputBox("Zadejte název projektu")
    
    taskFilter = _
        "(""http://schemas.microsoft.com/mapi/string/{00020329-0000-0000-C000-000000000046}/Projekt"" _
            LIKE '" & projectName & "%' AND " & _
        """http://schemas.microsoft.com/mapi/id/{00062003-0000-0000-C000-000000000046}/81010003"" <> 2)"
    
    strTag = "RecurSearch"
    
    Set objSch = Application.AdvancedSearch(Scope:=strS, Filter:=taskFilter, _
    SearchSubFolders:=True, Tag:=strTag)

    objSch.Save ("Projekt: " & projectName)

End Sub

Private Function AddSearchScope(oFolder As String, addFolder As String) As String
    'doplní řetězec, který obsahuje cestu k složce (nebo složkám), které mají být prohledávány
    If oFolder = "" Then
        AddSearchScope = "'" & addFolder & "'"
    Else
        AddSearchScope = oFolder & ", " & "'" & addFolder & "'"
    End If
End Function

Autorem původního skriptu je Simon Guest. Krátkou instruktáž, jak zadat makro do Outlooku naleznete v článku “GTD v Outlooku jednoduše a prakticky – díl VII. – Makra”.

Žádné komentáře:

Okomentovat