Vba: sprawdź, czy skoroszyt jest otwarty (z przykładem)


Możesz użyć poniższej składni w VBA, aby sprawdzić, czy dany skoroszyt jest aktualnie otwarty.

 SubCheckWorkbookOpen ()

Dim resultCheck As Boolean
Dim wb As Workbook
Dim specific_wb As String
    
On Error Resume Next
specific_wb = InputBox("Check if this workbook is open:")
    
Set wb = Application.Workbooks.Item(specific_wb)
resultCheck = Not wb Is Nothing

If resultCheck Then
    MsgBox “Workbook is open”
Else
MsgBox “Workbook is not open”
End If
    
End Sub

Po uruchomieniu tego makra pojawi się pole wprowadzania, w którym użytkownik może wpisać nazwę skoroszytu programu Excel, a makro wyświetli okno komunikatu z jednym z następujących wyników:

  • „Plik jest otwarty”
  • „Plik nie jest otwarty”

Poniższy przykład pokazuje, jak zastosować tę składnię w praktyce.

Przykład: Jak sprawdzić, czy skoroszyt jest otwarty za pomocą VBA

Załóżmy, że obecnie mamy otwarte dwa skoroszyty o następujących nazwach:

  • mój_zeszyt1.xlsx
  • mój_zeszyt2.xlsx

Załóżmy, że chcemy sprawdzić, czy skoroszyt o nazwie mój_workbook1.xlsx jest aktualnie otwarty.

W tym celu możemy utworzyć następujące makro:

 SubCheckWorkbookOpen ()

Dim resultCheck As Boolean
Dim wb As Workbook
Dim specific_wb As String
    
On Error Resume Next
specific_wb = InputBox("Check if this workbook is open:")
    
Set wb = Application.Workbooks.Item(specific_wb)
resultCheck = Not wb Is Nothing

If resultCheck Then
    MsgBox “Workbook is open”
Else
MsgBox “Workbook is not open”
End If
    
End Sub

Po uruchomieniu tego makra pojawi się okno, w którym mogę wpisać my_workbook1.xlsx w polu wejściowym:

Po kliknięciu OK makro wyświetli następujący komunikat:

Makro poprawnie wyświetla komunikat „Skoroszyt jest otwarty”, co oznacza, że skoroszyt o tej nazwie jest aktualnie otwarty.

Załóżmy teraz, że wpisałem nazwę skoroszytu, który nie jest aktualnie otwarty:

Po kliknięciu OK makro wyświetli następujący komunikat:

Makro poprawnie wyświetla komunikat „Skoroszyt nie jest otwarty”, co oznacza, że skoroszyt o tej nazwie nie jest obecnie otwarty.

Dodatkowe zasoby

Poniższe samouczki wyjaśniają, jak wykonywać inne typowe zadania w VBA:

VBA: Jak policzyć liczbę arkuszy w skoroszycie
VBA: jak wstawić wiele kolumn
VBA: jak wstawić wiele linii

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *