Skrypty w regułach - outlook

Pytania, uwagi, problemy związane z Microsoft Office Outlook, wersje 2007, 2010, 2013 i 2016.

Moderator: Moderatorzy

Skrypty w regułach - outlook

Postprzez manhattan0 » Cz 26.11.2020 08:20

Witam,

W edytorze rejestru dodałam klucz zgodnie z artykułem "Reguły - Uruchomienie skryptów i aplikacji" - załącznik
Niestety wciąż przy tworzeniu nowej reguły nie ma możliwości uruchomienia skryptu...
Gdzie może leżeć przyczyna?
Jest to office365.
Bardzo proszę o pomoc. :)
Załączniki
skrypty.JPG
manhattan0
 
Posty: 7
Dołączył(a): Śr 25.11.2020 10:33

Re: Skrypty w regułach - outlook

Postprzez OShon » Cz 26.11.2020 09:11

A dlaczego stworzyłeś dodatkowy łańcuch i to po polsku?
https://www.outlook.pl/Reguly-8211-Uruchomienie-skryptow-i-aplikacji/518/
Obrazek
Oskar Shon - MVP Office Dev. 11/21, 3x MCC, 4/9/22 TechNet
Forum moderator: Outlook.pl | ExcelForum.pl | MSDN dział VBA
Zobacz fajne dodatki: Outlooka, Excela, Worda lub PowerPointa
OShon
 
Posty: 10988
Dołączył(a): Cz 19.10.2006 08:31
Lokalizacja: Projekt autorski VBATools.pl

Re: Skrypty w regułach - outlook

Postprzez manhattan0 » Cz 26.11.2020 09:50

Dziękuję, teraz działa.

Pozwoliłam sobie użyć kodu :

Kod: Zaznacz cały
Sub SaveMyMsg(MyMail As MailItem)
'MVP OShon from VBATools.pl
 Dim fso As Object 'FileSystemObject
 Dim strID$, strFolderPath$, strSaveName$
 Dim olNS As Outlook.NameSpace
 Dim oMail As Outlook.MailItem

 strID = MyMail.EntryID
 Set olNS = Application.GetNamespace("MAPI")
 Set oMail = olNS.GetItemFromID(S10)
 strFolderPath = MakeWholePath("C:\Nowy folder")
 strSaveName = "Zapasy" & Format(Now, "YYYY-MM-DD_HH-MM") & ".txt"
 Set fso = CreateObject("Scripting.FileSystemObject")

 If fso.FileExists(strFolderPath & strSaveName) Then
    fso.DeleteFile strFolderPath & strSaveName
 End If

 oMail.SaveAs strFolderPath & strSaveName, olTXT

 Set oMail = Nothing
 Set olNS = Nothing
 Set fso = Nothing
End Sub

Private Function FileExists(FilePath As String) As Boolean
On Error GoTo blad
 FileExists = Len(Dir(FilePath, vbDirectory Or vbHidden Or vbSystem)) > 0
Exit Function
blad:
FileExists = False
End Function

Private Sub MakeWholePath(FileWithPath As String)
Dim x&, PathToMake$
For x = LBound(Split(FileWithPath, "\")) To UBound(Split(FileWithPath, "\")) - 1
 PathToMake = PathToMake & "\" & Split(FileWithPath, "\")(x)
 If Right$(PathToMake, 1) <> ":" Then
 If FileExists(Mid(PathToMake, 2, Len(PathToMake))) = False Then _
 MkDir Mid(PathToMake, 2, Len(PathToMake))
 End If
Next
End Sub

Niestety nie działa mi. Czy dobrze określiłam folder do którego wpadają wiadomości? Nie jest to główna skrzynka a właśnie folder o nazwie "S10"
manhattan0
 
Posty: 7
Dołączył(a): Śr 25.11.2020 10:33

Re: Skrypty w regułach - outlook

Postprzez OShon » Cz 26.11.2020 10:00

A na zdrowie, faktycznie moja.
Generalnie widzę że pierwsze kroki i od razu na głęboką wodę.. :)
S10 jak jest nazwą to powinien być stringiem czyli w zajączkach "S10" ale to i tak będzie źle bo to złe miejsce na wpisanie nazwy.
Kopiujesz procedure z parametrem i jej zmienna wejściowa określa jaki mail ma być przerobiony. Procedury nie interesuje skąd ten mail pochodzi bo przekazujesz go regułą.
Zatem w regule należy dobrze określić warunki.

Poza tym zanim mail trafi do pod folderu np "S10" to będzie i tak w odbiorczej, a potem zostaje przeniesiony....
Zastanów się zatem co zrobić, jaką kolejność, jakie warunki, a psucie procedurki to sobie podaruj, bo nie bardzo wiesz co wyciąłeś.
Na forum wpisz nazwę procedury i zobacz jak ludzie walczyli i jakie są moje podpowiedzi w temacie.

VBATools_Automatyzacja_24.png
VBATools_Automatyzacja_24.png (25.64 KiB) Przeglądane 1232 razy
Obrazek
Oskar Shon - MVP Office Dev. 11/21, 3x MCC, 4/9/22 TechNet
Forum moderator: Outlook.pl | ExcelForum.pl | MSDN dział VBA
Zobacz fajne dodatki: Outlooka, Excela, Worda lub PowerPointa
OShon
 
Posty: 10988
Dołączył(a): Cz 19.10.2006 08:31
Lokalizacja: Projekt autorski VBATools.pl

Re: Skrypty w regułach - outlook

Postprzez manhattan0 » Cz 26.11.2020 10:32

Faktycznie nie pomyślałam logicznie - trochę wstyd.

No więc wprowadziłam kod do modułu projektu, następnie utworzyłam regułę, do której podpięłam SaveMyMsg i wciąż coś nie działa :(
Poprawiłam też w kodzie to co nabroiłam.

skrypt 2.JPG

skrypt 3.JPG
manhattan0
 
Posty: 7
Dołączył(a): Śr 25.11.2020 10:33

Re: Skrypty w regułach - outlook

Postprzez OShon » Cz 26.11.2020 10:52

No to tak, dodaj sobie Breaking point albo stop i po odebraniu właściwej wiadomości przechodź krokowo [F8] po liniach i sprawdź co jest nie tak.

XL_VBA_Breaking_point.png
XL_VBA_Breaking_point.png (7.38 KiB) Przeglądane 1229 razy

Ja tam widzę na pierwszy rzut oka problem ze ścieżka do pliku.
Tworzysz moją procedurką katalog, ale nie dajesz potem w nazwie pliku "\" wiec zapis tego pliku w tym katalogu się nie odbywa.
Poza tym powinien ci się kod wywalić bo nie ma obsługi błędu.
Obrazek
Oskar Shon - MVP Office Dev. 11/21, 3x MCC, 4/9/22 TechNet
Forum moderator: Outlook.pl | ExcelForum.pl | MSDN dział VBA
Zobacz fajne dodatki: Outlooka, Excela, Worda lub PowerPointa
OShon
 
Posty: 10988
Dołączył(a): Cz 19.10.2006 08:31
Lokalizacja: Projekt autorski VBATools.pl

Re: Skrypty w regułach - outlook

Postprzez manhattan0 » Cz 26.11.2020 11:20

Dodałam STOP oraz poprawiłam ścieżkę

I nic się nie dzieje, nie ma żadnych błędów.
Gdzie jeszcze ewentualnie może leżeć problem?
Załączniki
skrypt4.JPG
manhattan0
 
Posty: 7
Dołączył(a): Śr 25.11.2020 10:33

Re: Skrypty w regułach - outlook

Postprzez manhattan0 » Cz 26.11.2020 11:32

Po włączeniu makr i uruchomieniu outlooka ponownie dostałam taki błąd jak w zał.

Co może być przyczyną?
________________________________________________________________________________________________________
Załączniki
skrypt5.JPG
manhattan0
 
Posty: 7
Dołączył(a): Śr 25.11.2020 10:33

Re: Skrypty w regułach - outlook

Postprzez OShon » Cz 26.11.2020 11:49

Aaa no bo użyłeś procedury, a nie funkcji. Procedura nic nie zwraca. Po prostu ją wywołujesz, względnie możesz coś wynieść poza procedure do zmiennych globalnych. No ale nie wychodźmy tak daleko.
napisz zamiast tej linijki tak:

Kod: Zaznacz cały
strFolderPath = "C:\Nowy folder\"
call MakeWholePath(strFolderPath)
Obrazek
Oskar Shon - MVP Office Dev. 11/21, 3x MCC, 4/9/22 TechNet
Forum moderator: Outlook.pl | ExcelForum.pl | MSDN dział VBA
Zobacz fajne dodatki: Outlooka, Excela, Worda lub PowerPointa
OShon
 
Posty: 10988
Dołączył(a): Cz 19.10.2006 08:31
Lokalizacja: Projekt autorski VBATools.pl

Re: Skrypty w regułach - outlook

Postprzez manhattan0 » Cz 26.11.2020 11:57

Dziękujeee!!!! Działa pięknie
manhattan0
 
Posty: 7
Dołączył(a): Śr 25.11.2020 10:33

Re: Skrypty w regułach - outlook

Postprzez OShon » Cz 26.11.2020 12:02

Patrzę do historii i ja popełniłem błąd przed laty (9lat temu) sugerując tak właśnie.
Widać nikt mnie nie poprawił :)
ech... i po jakiego grzyba.
Obrazek
Oskar Shon - MVP Office Dev. 11/21, 3x MCC, 4/9/22 TechNet
Forum moderator: Outlook.pl | ExcelForum.pl | MSDN dział VBA
Zobacz fajne dodatki: Outlooka, Excela, Worda lub PowerPointa
OShon
 
Posty: 10988
Dołączył(a): Cz 19.10.2006 08:31
Lokalizacja: Projekt autorski VBATools.pl


Powrót do Microsoft Outlook 2007 / 2010 / 2013 / 2016

Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 9 gości