Czy prawidłowy skoroszyt Excela


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
'**********************************************************************************************************
' Nazwa:                czyPrawidlowyPlik
' Autor:                mielk | 2013-04-25
'
' Opis:                 Funkcja sprawdzająca czy podany plik Excela jest prawidłowy i można odwoływać się
'                       do jego właściwości i metod bez obawy, że zostanie wygenerowany błąd.
'
'                       Funkcja jest bardzo pomocna, ponieważ pozwala uniknąć błędu
'                       Run-time error '-2147221080 (800401a8)': Automation error.
'                       Błąd ten jest generowany w sytuacji, kiedy kod próbuje się odnieść do właściwości
'                       lub metody skoroszytu Excelu, ale plik ten został wcześniej zamknięty.
'
' Argumenty:
'   wkb                 Sprawdzany skoroszyt Excela.
'
' Zwraca:
'   Boolean             True - jeżeli sprawdzany skoroszyt jest prawidłowy i bez obaw można się odnosić do
'                               jego właściwości i metod.
'                       False - jeżeli podany skoroszyt jest nieprawidłowy (zazwyczaj przyczyną jest fakt,
'                               że plik ten został wcześniej zamknięty).
'
'
' --- Zmiany ----------------------------------------------------------------------------------------------
' 2013-04-25        mielk       Utworzenie funkcji.
'**********************************************************************************************************
Public Function czyPrawidlowyPlik(wkb As Excel.Workbook) As Boolean
    Const NAZWA_METODY As String = "czyPrawidlowyPlik"
    '------------------------------------------------------------------------------------------------------
    Dim strNazwaSkoroszytu As String
    '------------------------------------------------------------------------------------------------------

    On Error Resume Next
    strNazwaSkoroszytu = wkb.name

    'Jeżeli nazwa podanego pliku została przypisana do zmiennej [strNazwaSkoroszytu], oznacza to, że ten
    'skoroszyt jest prawidłowy i można odwoływać się do jego właściwości bez obawy o pojawienie się błędów.
    czyPrawidlowyPlik = VBA.Len(strNazwaSkoroszytu)

End Function