Есть макрос сохраняющей картинки с листа - в папки. Но он почему-то не сохраняет группы фигур как картинки (а вытаскивает из них картинки и сохраняет как jpg именно их). Подскажите - как изменить этот макрос чтобы он сохранял не картинки из групп фигур, а сами группы - как jpg ?
Здравствуйте. Помогите решить вопрос.
Есть макрос сохраняющей картинки с листа - в папки. Но он почему-то не сохраняет группы фигур как картинки (а вытаскивает из них картинки и сохраняет как jpg именно их). Подскажите - как изменить этот макрос чтобы он сохранял не картинки из групп фигур, а сами группы - как jpg ?dmitrijaltman8
если группировка .type=msoGroup, то рекурсивно углубляться до единичной
в макросе от New надо убрать строчки, углубляющиеся в группу [vba]
Код
Sub SaveShapes() Dim iSht As Worksheet, iShape As Shape, EachShape As Shape Dim sFolderPath As String, oFSO As Object, sName As String
Application.ScreenUpdating = False sFolderPath = ThisWorkbook.Path & "\" Set oFSO = CreateObject("Scripting.FileSystemObject") For Each iSht In Worksheets 'каждый лист For Each iShape In iSht.Shapes 'каждый объект ' If iShape.Type = msoGroup Then 'Если группа ' For Each EachShape In iShape.GroupItems If Not iShape.Name Like "*Oval*" And Not iShape.Name Like "*Rectangle*" And Not iShape.Name Like "*Line*" And Not iShape.Name Like "*Connector*" Then If Not oFSO.folderexists(sFolderPath & iSht.Name) Then oFSO.CreateFolder (sFolderPath & iSht.Name) sName = sFolderPath & iSht.Name & "\" & iShape.Name iShape.Copy With ActiveSheet.ChartObjects.Add(0, 0, iShape.Width, iShape.Height).Chart .Parent.Select .Paste .Export Filename:=sName & ".jpg", FilterName:="jpg" .Parent.Delete End With End If ' Next EachShape ' End If Next iShape Next iSht Application.ScreenUpdating = True MsgBox "Картинки сохранены!", vbInformation, "Конец" End Sub
если группировка .type=msoGroup, то рекурсивно углубляться до единичной
в макросе от New надо убрать строчки, углубляющиеся в группу [vba]
Код
Sub SaveShapes() Dim iSht As Worksheet, iShape As Shape, EachShape As Shape Dim sFolderPath As String, oFSO As Object, sName As String
Application.ScreenUpdating = False sFolderPath = ThisWorkbook.Path & "\" Set oFSO = CreateObject("Scripting.FileSystemObject") For Each iSht In Worksheets 'каждый лист For Each iShape In iSht.Shapes 'каждый объект ' If iShape.Type = msoGroup Then 'Если группа ' For Each EachShape In iShape.GroupItems If Not iShape.Name Like "*Oval*" And Not iShape.Name Like "*Rectangle*" And Not iShape.Name Like "*Line*" And Not iShape.Name Like "*Connector*" Then If Not oFSO.folderexists(sFolderPath & iSht.Name) Then oFSO.CreateFolder (sFolderPath & iSht.Name) sName = sFolderPath & iSht.Name & "\" & iShape.Name iShape.Copy With ActiveSheet.ChartObjects.Add(0, 0, iShape.Width, iShape.Height).Chart .Parent.Select .Paste .Export Filename:=sName & ".jpg", FilterName:="jpg" .Parent.Delete End With End If ' Next EachShape ' End If Next iShape Next iSht Application.ScreenUpdating = True MsgBox "Картинки сохранены!", vbInformation, "Конец" End Sub