Microsoft Outlook troubleshooting
W przypadku, kiedy w programie Outlook znajduje się bardzo dużo wiadomości, przychodzi czas, gdy nad naszym uszeregowaniem poczty, regułami i sortowaniem bierze górę wbudowana wyszukiwarka kontekstowa. Jest ona jednak wygodna w przypadku niepowtarzalnego wyszukiwania danych, ponieważ ciągłe wpisywanie tekstu do wyszukania może powodować błędy, zwłaszcza jeśli zmiennych wyszukania jest więcej. Odpowiedzią na ten problem jest zbudowanie folderu wyszukania, który dla użytkownika jest magazynem przefiltrowanych wiadomości umieszczonym w strukturze drzewa. Bez względu na wyłączenie komputera jest on dostępny i automatycznie aktualizowany.
 
Sprzedaż, oferty marketingowe lub inna działalność biznesowa zbiega się często z wykorzystaniem danych arkusza Excela. Można to wykorzystać i na podstawie zawartych w nich informacji utworzyć parametry do procedury tworzącej folder wyszukania (lub pobrać parametry z innego repozytorium).
 
Podstawowe informacje niezbędne do oprogramowania tych czynności podaję poniżej.
 
Option Explicit

Sub Tworzenie_folderu_wyszukania()
'MVP Shon Oskar from VBATools.pl
  Dim oSearch As Outlook.Search
  Dim oSearchFolder As Outlook.MAPIFolder
  Dim oApp As Outlook.Application
  Set oApp = New Outlook.Application 'Outlook references
  
  Const Folder_przeszukania As String = "Inbox"
  Const Nazwa_Folderu As String = "Mój folder wyszukania"
  Const sSchema As String = "urn:schemas:httpmail:"
  
  Dim w_body As String: w_body = sSchema & textdescription LIKE "

  'możliwe użycie innych ograniczeń
    'po adresie:                    sSchema & "fromemail LIKE "
    'po temacie:                    sSchema & "subject LIKE "
    'wysłane DO lub liste dystryb.: sSchema & "displayto LIKE "
    'wysłane DW:                    sSchema & "displaycc LIKE "
    'nieprzeczytane:                sSchema & "read" = 0
    'z załacznikiem:                sSchema & "hasattachment" = 1
    'uwzg. ważność:                 sSchema & "importance" <= 1
    'z użyciem flagi:               sSchema & "messageflag" > 0
    
  Dim strT1 As String, strT2 As String, strT3 As String
  Dim Zapytanie As String
   
  strT1 = "'%" & range("a1").value & "%'"
  strT2 = "'%" & range("a2").value & "%'"
  strT3 = "'%" & range("a3").value & "%'"
  
  Zapytanie = w_body & strT1 & " or " & _
              w_body & strT2 & " or " & _
              w_body & strT3

  'lub inna możliwość tworzenia Zapytanie wg pow wzorca (np w pętli zakresu lub tablicy)

  Set oSearch = oApp.AdvancedSearch(Folder_przeszukania, Zapytanie, False, Nazwa_Folderu)
  Set oSearchFolder = oSearch.Save(Nazwa_Folderu)
End Sub
 
Zamienna „Zapytanie” jest uzyskana poprzez połączenie wielu zmiennych, ale może też być uzyskana przy użyciu pętli lub tablicy, w której parametry zostaną umieszczone (zwłaszcza jeżeli parametrów zapytania jest więcej). Natomiast zmienna „Nazwa_folderu” musi być unikalna i najlepiej nadać jej nazwę umieszczając następną wartość, w przypadku kiedy kod znajdzie folder o takiej samej nazwie.
 
Powyższy kod odwołuje się do wartości komórek Excela, jednakże może to być stała cechująca nasze wyszukanie, bądź też zmienna uzyskana przez zapytanie użytkownika. Znak „%” w języku SQL jest niezbędny tylko w przypadku, kiedy przed lub po wyszukiwanej frazie występuje inny tekst (jest tożsamy z if zmienna like „*” & str & „*” w VB). Dodatkowo podczas budowania mechanizmu należy pamiętać, że sShema musi być powielany przy każdym parametrze, a wykorzystanie łącznika or musi być oddzielone od and nawiasami (zapytanie = (zmienna1 or zmienna2) and zmienna3).

MVP Shon Oskar – VBATools.pl
Jeśli masz pytania dot. tego artykułu zapraszam na Forum
Skonfiguruj swój pakiet dodatków do Excela, Worda, PowerPointa i Outlooka



© Wszelkie prawa zastrzeżone. Żadna część ani całość tego artykułu nie może być powielana ani publikowana bez zgody autora.