Microsoft Outlook troubleshooting

W trzecim artykule tej serii chciałem pokazać wam, iż można dzięki kreatorowi reguł oraz procedurze VBA w dość prosty sposób wywołać otwarcie pliku Excela. Co więcej, można uruchomić makro zapisane w tym pliku, co jednoznacznie doprowadzi do wykonania zaprogramowanych zadań.

Poniższe zdjęcie przedstawia w jaki sposób podłączamy opisaną później w tym artykule procedurę.

 kreator

Rys 1. Widok kreatora reguł uruchamiającego procedurę makra

To iż kreator Outlooka wymaga podania parametru w procedurze, to w tym przypadku powołamy się na niego choć go nie będziemy wykorzystywać: mail As MailItem. Dalsza część wywołanej procedury posiadać będzie nazwę pliku Excela, jaki będziemy chcieli uruchomić regułą oraz nazwę makra, jaki w tym pliku się znajduje.

Sub Makro_Raport(mail As MailItem)
Call otwieranie_excela_i_uruchomienie_makra("c:\temp\kod_makro.xlsm", "kod_makro")
End Sub

Private Sub otwieranie_excela_i_uruchomienie_makra(sciezka$, nazwa_makra$)
'MVP OShon from VBATools.pl
'dodaj referencje Tools/References/Microsoft Excel X,0 Object Lib.
On Error GoTo blad
Dim xlApp As Excel.Application
Dim xlWKB As Excel.Workbook

If FileExists(sciezka) = False Then
MsgBox "Brak pliku Excela, sprawdź ścieżkę." & vbCr & _
sciezka, vbInformation, "VBATools.pl"
Exit Sub
End If

If IsFileOpen(sciezka) = True Then
MsgBox "Wyjdź z pliku Excela i spróbuj ponownie." & vbCr & _
sciezka, vbInformation, "VBATools.pl"
Exit Sub
End If

Set xlApp = New Excel.Application
xlApp.Visible = True
Set xlWKB = xlApp.Workbooks.Open(sciezka)
xlApp.Run (xlWKB.Name & "!" & nazwa_makra)

Set xlWKB = Nothing
Set xlApp = Nothing

Exit Sub
blad:
MsgBox "Błąd: " & Err.Number & vbCr & Err.Description, _
vbExclamation, "VBATools.pl"
End Sub

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

Public Function IsFileOpen(FileName$) As Boolean
Dim iFilenum&, iErr&
On Error Resume Next
iFilenum = FreeFile()
Open FileName For Input Lock Read As #iFilenum
Close iFilenum
iErr = Err
On Error GoTo 0

Select Case iErr
Case 0: IsFileOpen = False
Case 70: IsFileOpen = True
Case Else: Error iErr
End Select
End Function

Procedura otwieranie_excela_i_uruchomienie_makra jest dla opisanego zastosowania uniwersalna, to też chcąc powielać proces automatyzacji zadań możemy zmieniając nazwę procedury Makro_Raport uruchamiać różne pliki podpinając je w regule lub w kolejnych regułach Outlooka. Dzięki temu nie zapomnimy wykonać raportu lub zestawienia na żądanie naszego zwierzchnika od razu po odebraniu wiadomości bez zastanawiania się gdzie mamy zapisany raport lub które makro realizuje kluczowy proces.

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.