I'm currently working on making a macro that will run on a drawing document and delete all the revisions on every sheet of the drawing. Currently this works on the first sheet of a drawing or on single sheet drawings, but when the drawing has more than one sheet it stops working after the first sheet. If anyone could help that would be great. Below I have posted my code.
Sub ClearRev()
Dim swApp As SldWorks.SldWorks
Dim swDraw As SldWorks.DrawingDoc
Dim swSheet As SldWorks.Sheet
Dim sheetNames As Variant
Dim i As Integer
Set swApp = CreateObject("SldWorks.Application")
Set swDraw = swApp.ActiveDoc
If Not swDraw Is Nothing Then
sheetNames = swDraw.GetSheetNames
For i = 0 To UBound(sheetNames)
swDraw.ActivateSheet sheetNames(i)
Set swSheet = swDraw.GetCurrentSheet
Dim swView As SldWorks.View
Set swView = swDraw.GetFirstView
'Set swView = swView.GetNextView ' skip the sheet format view
Do While Not swView Is Nothing
Dim swAnn As SldWorks.Annotation
Set swAnn = swView.GetFirstAnnotation2
Do While Not swAnn Is Nothing
If swAnn.GetType = swAnnotationType_e.swTableAnnotation Then
Dim swTableAnn As SldWorks.TableAnnotation
Set swTableAnn = swAnn.GetSpecificAnnotation
If Not swTableAnn Is Nothing Then
If swTableAnn.Type = swTableAnnotation_RevisionBlock Then
Dim swRevTable As SldWorks.RevisionTableAnnotation
Set swRevTable = swTableAnn
Call ClearRevisionTable(swRevTable)
End If
End If
End If
Set swAnn = swAnn.GetNext
Loop
Set swView = swView.GetNextView
Loop
Next i
Else
MsgBox "No active drawing document."
End If
End Sub
Sub ClearRevisionTable(swRevTable As SldWorks.RevisionTableAnnotation)
Dim swTableAnn As SldWorks.TableAnnotation
Set swTableAnn = swRevTable
Dim j As Integer
For j = swTableAnn.RowCount - 1 To 0 Step -1
Dim revID As Long
revID = swRevTable.GetIdForRowNumber(j)
If revID <> 0 Then
swRevTable.DeleteRevision revID, True
End If
Next
End Sub
