AW: Formatvorlagen löschen
13.01.2013 03:21:20
fcs
Hallo Michael,
hier zwei Makros, mit denen man die Formatvorlagen/Styles in der aktiven Arbeitsmappe bereinigen kann.
Ob damit auch die widerspenstigen Formatvorlagen verschwinden, die in deiner Datei vorhanden sind, kann ich nicht vorhersagen.
Gruß
Franz
Sub Delete_Formatvorlagen_benutzerdefinierte()
Dim objStyle As Style, icount As Long, bolDelete As Boolean
Dim wbk As Workbook, wbkNeu As Workbook
Dim arrStyles() As String
If MsgBox("In aktiver Arbeitsmappe alle benutzerdefinierten Formatvorlagen löschen?", _
vbQuestion + vbOKCancel, "Formatvorlagen löschen") = vbCancel Then Exit Sub
Set wbk = ActiveWorkbook
On Error Resume Next
Application.ScreenUpdating = False
'Standardliste von Styles ermitteln in leerer neuer Arbeitsmappe
Set wbkNeu = Application.Workbooks.Add(Template:=xlWBATWorksheet)
For Each objStyle In wbkNeu.Styles
icount = icount + 1
ReDim Preserve arrStyles(1 To icount)
arrStyles(icount) = objStyle.Name
Next
wbkNeu.Close savechanges:=False
'Namen der Styles/Formatvorlagen in der aktiven Arbeitsmappe mit den Standard-Styles _
vergleichen und benutzerdefinierte löschen
For Each objStyle In wbk.Styles
bolDelete = True
For icount = 1 To UBound(arrStyles)
If arrStyles(icount) = objStyle.Name Then bolDelete = False: Exit For
Next
If bolDelete = True Then
objStyle.Delete
End If
Next
Application.ScreenUpdating = True
End Sub
Sub Delete_Formatvorlagen_Alle()
Dim objStyle As Style, icount As Long, bolDelete As Boolean
Dim wbk As Workbook, wbkNeu As Workbook
If MsgBox("In aktiver Arbeitsmappe alle Formatvorlagen außer ""Standard"" löschen?", _
vbQuestion + vbOKCancel, "Formatvorlagen löschen") = vbCancel Then Exit Sub
Set wbk = ActiveWorkbook
On Error Resume Next
'Namen der Styles/Formatvorlagen in der aktiven Arbeitsmappe löschen
For Each objStyle In wbk.Styles
With objStyle
If .Name = "Standard" Or .Name = "Normal" Then
'do nothing
Else
.Delete
End If
End With
Next
End Sub