Vba: controleer of de werkmap geopend is (met voorbeeld)
U kunt de volgende syntaxis in VBA gebruiken om te controleren of een bepaalde werkmap momenteel geopend is.
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
Wanneer deze macro wordt uitgevoerd, verschijnt er een invoervak waarin een gebruiker de naam van een Excel-werkmap kan typen. De macro produceert een berichtvenster met een van de volgende resultaten:
- “Het bestand is geopend”
- “Het bestand is niet geopend”
Het volgende voorbeeld laat zien hoe u deze syntaxis in de praktijk kunt gebruiken.
Voorbeeld: controleren of de werkmap open is met VBA
Stel dat we momenteel twee werkmappen hebben geopend met de volgende namen:
- mijn_werkboek1.xlsx
- mijn_werkboek2.xlsx
Stel dat we willen controleren of de werkmap met de naam my_workbook1.xlsx momenteel geopend is.
We kunnen hiervoor de volgende macro maken:
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
Zodra we deze macro uitvoeren, verschijnt er een vak waarin ik my_workbook1.xlsx in het invoervak kan typen:
Zodra ik op OK klik, geeft de macro het volgende berichtvenster weer:
De macro geeft correct „Werkmap is open“ weer om aan te geven dat een werkmap met die naam momenteel geopend is.
Stel nu dat ik de naam heb getypt van een werkmap die momenteel niet is geopend:
Zodra ik op OK klik, geeft de macro het volgende berichtvenster weer:
De macro geeft correct „Werkmap is niet open“ weer om aan te geven dat een werkmap met die naam momenteel niet geopend is.
Aanvullende bronnen
In de volgende tutorials wordt uitgelegd hoe u andere veelvoorkomende taken in VBA kunt uitvoeren:
VBA: het aantal vellen in een werkmap tellen
VBA: hoe u meerdere kolommen invoegt
VBA: hoe u meerdere regels invoegt