Добрый день!
Снова к вам за помощью.
Суть макроса в том что он собирает файлы из нескольких папок файлы (обработчик подсказан splxqf и _МВК_) и помещает их в один файл. Изображение на листе дублируется, и представляет собой 3 вида: с битмапом, обрисованный и инверт (рисунок 1).
В исходных файлах присутствкет битмап, который надо обрисовать, и сама обрисовка.
Вся ерунда в том, что ошибка всплывает когда в импортируемом файле всего 2 объекта - битмап и векторный объект (рис 1 - 150) ! Если число объектов больше 2-х (рис 1 - 149) все проходит замечательно.
Ни клонирование, ни копирование и вставка - не помогают вылезает одна и та же ошибка (рисунок 2). 2 дня уже мучаюсь ((((((
Снова к вам за помощью.
Суть макроса в том что он собирает файлы из нескольких папок файлы (обработчик подсказан splxqf и _МВК_) и помещает их в один файл. Изображение на листе дублируется, и представляет собой 3 вида: с битмапом, обрисованный и инверт (рисунок 1).
В исходных файлах присутствкет битмап, который надо обрисовать, и сама обрисовка.
Вся ерунда в том, что ошибка всплывает когда в импортируемом файле всего 2 объекта - битмап и векторный объект (рис 1 - 150) ! Если число объектов больше 2-х (рис 1 - 149) все проходит замечательно.
Код:
...
ActiveLayer.Import sFile, cdrCDR
ActiveSelection.UngroupAll
ActiveSelection.Group
Set sht = ActiveShape
sht.GetSize xs, ys
For Each item In sht.Shapes
If item.Type = cdrBitmapShape Then
item.ConvertToBitmapEx cdrRGBColorImage, True, True, 200, 1
bitm = True
ElseIf item.Type = cdrEllipseShape Then
elips = True
End If
Next item
If bitm = True Then
sht.SetPositionEx 3, x, y + ys * 2 + 3
Set sht = sht.Duplicate(0, -ys - 3)
For Each item In sht.Shapes
If item.Type = cdrBitmapShape Then
item.Delete
End If
Next item
Else
sht.SetPositionEx 3, x, y + ys
End If
Set sht = sht.Duplicate(0, -ys - 19) <- Вот здесь ругается и вываливается
...