Einführung "VBA mit Microsoft Office"

Code Snippet "VBA Excel"

Hebt Blattschutz aller Blätter auf, wenn kein Passwortschutz vorliegt

Bei gruppierten Blättern wird Gruppierung aufgehoben und am Ende inklusive Auswahl des aktiven Blattes wiederhergestellt

Sub procJedenBlattschutzAufheben()
    
  Dim arrSelectedSheetNames() As String
  Dim intCounter As Integer
  Dim objSheet
  Dim strActiveSheetName
  
  'speichert Namen des aktiven Blattes
  strActiveSheetName = ActiveSheet.Name
  
  'Speichert Namen der gruppierten Blätter für Select am Ende
  ReDim arrSelectedSheetNames(ActiveWorkbook.Windows(1).SelectedSheets.Count - 1)
  intCounter = 0
  For Each objSheet In ActiveWorkbook.Windows(1).SelectedSheets
    arrSelectedSheetNames(intCounter) = _
      ActiveWorkbook.Windows(1).SelectedSheets(intCounter + 1).Name
    intCounter = intCounter + 1
  Next
  
  'Hebt Gruppierung auf und aktiviert Blattschutz für ausgewählte Blätter
  For Each objSheet In ActiveWorkbook.Sheets
    objSheet.Select
    objSheet.Unprotect
  Next
  
  'Stellt Gruppierung wieder her
  Sheets(arrSelectedSheetNames).Select
  
  'Aktiviert ursprünglich ausgewähltes Blatt
  Sheets(strActiveSheetName).Activate
End Sub