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