Jest otwarty jakis skoroszyt np. test.xls. Chciałbym za pomocą VBA sprawdzić
czy plik test.xls jest otwarty(małe przypomnienie :) nie otworzymy dwóch
plików xls o tych samych nazwach, choćby były by w różnych katalogach).
Narazie znalazłem dwa sposoby
1. przelatywać po kolekcji workbooks i porównywać z nazwami otwartych
skoroszytów
2.obsługiwać błąd przy próbie otwarcia pliku
Czy mozna jakoś krócej np.
workbooks("test.xls") i sprawdzać jakąś właściwość(tylko jaką)
3. Skorzystać z API i przeszukać nazwy otwartych okien np:
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA"
(ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Dim hwnd As Long
hwnd = FindWindow(vbNullString, "Microsoft Excel - rozliczenie")
If hwnd <> 0 Then MsgBox "Zamknij plik r.xls!"
Pozdrawiam
Scalak
Sub Czy_otwarty()
Dim skor As Workbook
Const szukany As String = "test.xls"
For Each skor In Workbooks
If skor.Name = szukany Then
MsgBox "Skoroszyt '" & szukany & "' JEST otwarty.",
vbExclamation
Exit Sub
End If
Next skor
MsgBox "Skoroszyt '" & szukany & "' nie jest otwarty.", vbInformation
End Sub
__________
Stanislaw
--
Pozdrowienia
pxd74