Случается в жизни, что есть файл Corel Draw cdr в котором очень много страниц. И эти страницы как-то названы. И необходимо удалить те из них, которые не соответствуют какому-то списку. Например, есть страницы Page1, Page2, Page3, Page4, Page5, Page6, Page7, а нам необходимо оставить в файле только необходимые — Page4, Page5 и Page6. Нам поможет следующий макрос:
Sub Macro1()
Dim p As Page
Dim i&
Dim arrNeedlePages() As String
Dim strFull As String
strFull = "Page4,Page5,Page6"
arrNeedlePages = Split(strFull, ",")
For i = 1 To ActiveDocument.Pages.Count
Set p = ActiveDocument.Pages(i)
If Not IsInArray(p.Name, arrNeedlePages) Then
p.Delete
End If
Next i
End Sub
Function IsInArray(stringToBeFound As String, arr As Variant) As Boolean
IsInArray = (UBound(Filter(arr, stringToBeFound)) > -1)
End Function
Иногда макрос приходится запускать несколько раз, чтобы он полностью справился с данной задачей, и конечно же, в данном случае недопустимы запятые в именах страниц. Но при желании можете доработать под себя.
Добавить комментарий