Доброго всем дня! Как обычно своего мозга не хватает, посему прошу помощи! У меня есть прайс-лист с картинками (около 3,5 тыс позиций) картинки в прайсе длинные, но с краев много пустого, и хочется его убрать (обрезать).
Максим Зеленский написал для этого макрос (Спасибо ему еще раз) картинки приняли нормальный вид, но эксель не обрезал их а только перестал отображать лишнее и при выгрузке картинки принимают первоначальный вид длиииииииинного прямоугольника (((. Как можно удалить обрезанные области без возвратно?
Решения с помощью макроса не знаю. Если не найдете решения с помощью макроса, то вручную это можно попытаться сделать так: выделите один любой рисунок - вкладка "Формат" - группа "Изменение" - Сжать рисунки - снимите флажок "Применить только к этому рисунку" - OK. После этого обрезанные фрагменты должны удалиться.
Сделайте файл пример. На одном листе рисунок обрезанный, но не сжатый, на втором листе этот же рисунок обрезанный и сжатый. Без файла-примера не понятна проблема, т.к. я сейчас обрезал рисунок, сжал его и внешне ничего не изменилось.
У меня тоже проблема с Вашим рисунком, но другая - не происходит удаление обрезков. Я пробую в Excel 2016. Если после обрезки рисунок скопировать и вставить с помощью специальной вставки, то обрезки удаляются. Попробуйте этот макрос.
Код
Sub jjj()
Dim shp As Shape, lngLeft As Long, lngTop As Long
Dim i As Long
Application.ScreenUpdating = False
For i = ActiveSheet.Shapes.Count To 1 Step -1
Set shp = ActiveSheet.Shapes(i)
lngLeft = shp.Left: lngTop = shp.Top
shp.Cut
ActiveSheet.PasteSpecial Format:="Рисунок"
Set shp = ActiveSheet.Shapes(ActiveSheet.Shapes.Count)
shp.Left = lngLeft: shp.Top = lngTop
Next
Application.ScreenUpdating = True
End Sub
coregonus, код следует оформлять соответствующим тегом: ищите такую кнопку. Тогда и строки пронумеруются сами. Посмотрите #6 - лучше читается, чем у Вас?