Добрый день! Имеется макрос в Excel, который создает новый документ Powerpoint, создает первый слайд, копирует на него диаграммы из экселя. Проблема: возможно ли макросом прописать разрыв связей в скопированной в Powerpoint диаграмме с экселем.
Руками это делается следующим образом: Выделяем объекты в Powerpoint, связь которых с внешним документом Excel хотим разорвать, нажимаем кноку Office - подготовить - изменить ссылки на файлы - разорвать связь.
Возможное решение для макроса - запускать разрыв связей не для выбранной диаграммы, а для всех связанных файлов в Powerpoint. Но после этого необходимо вернуться макросом в файл Excel для продолжения копирования следующей диаграммы. (по факту диаграмма одинаковая, меняются лишь цифры)
[vba]
Код
Sub vPowerpoint()
Sheets("koko").Select
Dim PP As PowerPoint.Application Dim PPPres As PowerPoint.Presentation Dim PPSlide As PowerPoint.Slide Dim SlideTitle As String
Set PP = New PowerPoint.Application PP.Visible = True
PP.Activate Set PPSlide = Nothing Set PPPres = Nothing Set PP = Nothing End Sub
[/vba]
Добрый день! Имеется макрос в Excel, который создает новый документ Powerpoint, создает первый слайд, копирует на него диаграммы из экселя. Проблема: возможно ли макросом прописать разрыв связей в скопированной в Powerpoint диаграмме с экселем.
Руками это делается следующим образом: Выделяем объекты в Powerpoint, связь которых с внешним документом Excel хотим разорвать, нажимаем кноку Office - подготовить - изменить ссылки на файлы - разорвать связь.
Возможное решение для макроса - запускать разрыв связей не для выбранной диаграммы, а для всех связанных файлов в Powerpoint. Но после этого необходимо вернуться макросом в файл Excel для продолжения копирования следующей диаграммы. (по факту диаграмма одинаковая, меняются лишь цифры)
[vba]
Код
Sub vPowerpoint()
Sheets("koko").Select
Dim PP As PowerPoint.Application Dim PPPres As PowerPoint.Presentation Dim PPSlide As PowerPoint.Slide Dim SlideTitle As String
Set PP = New PowerPoint.Application PP.Visible = True
Нашел данный код, который разрывает связь. Проблема в том, что у меня копируются из Excel сгруппированные фигуры группой с названием "Группа 1" со множеством подгрупп внутри. Чтобы данный макрос работал нужно все разгруппировать. Мне не подходит. Как можно его переделать, чтобы он залезал внутрь группы в каждую подгруппу?
[vba]
Код
Sub vbax_59884_ppt_update_break_links()
Dim i As Long Dim s As Long
On Error Resume Next
With CreateObject("PowerPoint.Application") .Visible = True '.Presentations.Open "C:\Users\Avi\Desktop\Avi\Report - Number1.pptm", Untitled:=msoTrue With .ActivePresentation For i = 1 To .Slides.Count For s = 1 To .Slides(i).Shapes.Count .Slides(i).Shapes(s).LinkFormat.BreakLink Next s Next i End With End With
End Sub
[/vba]
Нашел данный код, который разрывает связь. Проблема в том, что у меня копируются из Excel сгруппированные фигуры группой с названием "Группа 1" со множеством подгрупп внутри. Чтобы данный макрос работал нужно все разгруппировать. Мне не подходит. Как можно его переделать, чтобы он залезал внутрь группы в каждую подгруппу?
[vba]
Код
Sub vbax_59884_ppt_update_break_links()
Dim i As Long Dim s As Long
On Error Resume Next
With CreateObject("PowerPoint.Application") .Visible = True '.Presentations.Open "C:\Users\Avi\Desktop\Avi\Report - Number1.pptm", Untitled:=msoTrue With .ActivePresentation For i = 1 To .Slides.Count For s = 1 To .Slides(i).Shapes.Count .Slides(i).Shapes(s).LinkFormat.BreakLink Next s Next i End With End With
Всё, разобрался. Спасибо всем кто пытался помочь и писал в этой теме)) Может кому то понадобиться:
[vba]
Код
Sub óäàëåíèåÑñûëîê()
Dim i As Long Dim s As Long Dim r As Long
On Error Resume Next
With CreateObject("PowerPoint.Application") .Visible = True '.Presentations.Open "C:\Users\Avi\Desktop\Avi\Report - Number1.pptm", Untitled:=msoTrue With .ActivePresentation For i = 1 To .Slides.Count For s = 1 To .Slides(i).Shapes.Count For r = 1 To .Slides(i).Shapes(s).GroupItems.Count
Всё, разобрался. Спасибо всем кто пытался помочь и писал в этой теме)) Может кому то понадобиться:
[vba]
Код
Sub óäàëåíèåÑñûëîê()
Dim i As Long Dim s As Long Dim r As Long
On Error Resume Next
With CreateObject("PowerPoint.Application") .Visible = True '.Presentations.Open "C:\Users\Avi\Desktop\Avi\Report - Number1.pptm", Untitled:=msoTrue With .ActivePresentation For i = 1 To .Slides.Count For s = 1 To .Slides(i).Shapes.Count For r = 1 To .Slides(i).Shapes(s).GroupItems.Count