Связанные изображения в PowerPoint не обновляется

У меня презентация PowerPoint (2010) с двумя слайдами. Оба слайда содержат изображение (два разных изображения), и презентация устанавливается в цикл бесконечно до ESC нажата.

файл Excel экспортирует два изображения, используемые в презентации PowerPoint каждые 5 минут (это диаграммы, но я не могу использовать связанную диаграмму с файлом Excel в PowerPoint, потому что PowerPoint каким-то образом разрушает диаграмму). Изображения отличаются от оригинальных и Excel позволяет перезаписать существующие изображения.
Я предполагаю, что PowerPoint теряет ссылку на файл, так как "новое" изображение отличается от "оригинального" изображения.

кто-нибудь знает решение или альтернативный способ сделать это?

25
задан Robin Trietsch
26.12.2022 5:29 Количество просмотров материала 2433
Распечатать страницу

2 ответа

Я столкнулся с этим сам для обновления погоды изображений из Интернета во время слайд-шоу.

Так как Powerpoint сохраняет файлы изображений внутри себя во время слайд-шоу работает, он не обновляет изображения.

Это означает, что вы должны вызвать его, чтобы обновить ссылки с помощью код VBA или добавить в like;обновить ссылки во время слайд-шоу надстройки для PowerPoint 97 или более поздней версии или LiveImage - обновить вставленное связанное изображение в режиме реального времени в PowerPoint.

Я не использую эту программу и не могу найти код, который я однажды использовал. Приведенная выше информация должна помочь вам получить, где вы хотите быть.

6
отвечен CharlieRB 2022-12-27 13:17

следующее работало для меня. Сначала установите надстройку AutoEvents. В приведенном ниже примере используется непрерывная презентация PowerPoint из 2 слайдов (если у вас есть больше, измените оператор if в третьем макросе на номер вашего последнего слайда). Создайте три подлодки, которые делают то же самое:

  1. Sub Auto_ShowBegin()
  2. Sub Авто_открыть()
  3. Sub OnSlideShowPageChange (ByVal SSW как SlideShowWindow)

Auto_ShowBegin () и Auto_Open () одинаковые.

    Sub Auto_ShowBegin()
        Dim sldTemp As Slide
        Dim lngTemp As Long
        Dim lngCount As Long
        Dim myImage As Shape

        For Each sldTemp In ActivePresentation.Slides
            For lngCount = sldTemp.Shapes.Count To 1 Step -1
                With sldTemp.Shapes(lngCount)
                    If .Type = msoPicture Then
                        .Delete
                    End If
                End With
            Next
        Next

        Set sldTemp = ActivePresentation.Slides(1)

        Set myImage = sldTemp.Shapes.AddPicture( _
        FileName:="C:\Users\Name\image1.png", _
        LinkToFile:=msoFalse, _
        SaveWithDocument:=msoTrue, Left:=(ActivePresentation.PageSetup.SlideWidth / 2), _
        Top:=(ActivePresentation.PageSetup.SlideHeight / 2))

        myImage.Left = (ActivePresentation.PageSetup.SlideWidth / 2) - (myImage.Width / 2)
        myImage.Top = (ActivePresentation.PageSetup.SlideHeight / 2) - (myImage.Height / 2)

        Set sldTemp = ActivePresentation.Slides(2)

        Set myImage = sldTemp.Shapes.AddPicture( _
        FileName:="C:\Users\Name\image2.png", _
        LinkToFile:=msoFalse, _
        SaveWithDocument:=msoTrue, Left:=(ActivePresentation.PageSetup.SlideWidth / 2), _
        Top:=(ActivePresentation.PageSetup.SlideHeight / 2))

        myImage.Left = (ActivePresentation.PageSetup.SlideWidth / 2) - (myImage.Width / 2)
        myImage.Top = (ActivePresentation.PageSetup.SlideHeight / 2) - (myImage.Height / 2)
    End Sub

и третий макрос:

Sub OnSlideShowPageChange(ByVal SSW As SlideShowWindow)
    Dim sldTemp As Slide
    Dim lngTemp As Long
    Dim lngCount As Long
    Dim myImage As Shape
' AUTO UPDATE OF OLE LINKS MACRO
'
    If SSW.View.CurrentShowPosition = 2 Then
        For Each sldTemp In ActivePresentation.Slides
        For lngCount = sldTemp.Shapes.Count To 1 Step -1
            With sldTemp.Shapes(lngCount)
                If .Type = msoPicture Then
                    .Delete
                End If
            End With
        Next
    Next


    Set sldTemp = ActivePresentation.Slides(1)

    Set myImage = sldTemp.Shapes.AddPicture( _
    FileName:="C:\Users\Name\image1.png", _
    LinkToFile:=msoFalse, _
    SaveWithDocument:=msoTrue, Left:=(ActivePresentation.PageSetup.SlideWidth / 2), _
    Top:=(ActivePresentation.PageSetup.SlideHeight / 2))

    myImage.Left = (ActivePresentation.PageSetup.SlideWidth / 2) - (myImage.Width / 2)
    myImage.Top = (ActivePresentation.PageSetup.SlideHeight / 2) - (myImage.Height / 2)

    Set sldTemp = ActivePresentation.Slides(2)

    Set myImage = sldTemp.Shapes.AddPicture( _
    FileName:="C:\Users\Name\image2.png", _
    LinkToFile:=msoFalse, _
    SaveWithDocument:=msoTrue, Left:=(ActivePresentation.PageSetup.SlideWidth / 2), _
    Top:=(ActivePresentation.PageSetup.SlideHeight / 2))

    myImage.Left = (ActivePresentation.PageSetup.SlideWidth / 2) - (myImage.Width / 2)
    myImage.Top = (ActivePresentation.PageSetup.SlideHeight / 2) - (myImage.Height / 2)



    End If
End Sub
4
отвечен Robin Trietsch 2022-12-27 15:34

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх