Verknüpfte Bilder in PowerPoint werden nicht aktualisiert

Ich habe eine PowerPoint (2010) Präsentation mit zwei Folien. Beide Folien enthalten ein Bild (zwei verschiedene Bilder), und die Präsentation wird so eingestellt, dass eine unendlich lange Schleife ausgeführt wird, bis ESC gedrückt wird.

Eine Excel-Datei exportiert die beiden in der PowerPoint-Präsentation verwendeten Bilder alle 5 Minuten (es handelt sich um Diagramme,aber ich kann kein verknüpftes Diagramm mit der Excel-Datei in PowerPoint verwenden, da PowerPoint das Diagramm irgendwie ruiniert). Die Bilder unterscheiden sich von den ursprünglichen und Excel ist so eingestellt, dass die vorhandenen Bilder überschrieben werden. Ich nehme an, dass PowerPoint die Verknüpfung zur Datei verliert, da sich das "neue" Bild vom "ursprünglichen" Bild unterscheidet.

Kennt jemand eine Lösung oder eine alternative Methode, um dies zu tun?

Author: Robin Trietsch, 2014-06-04

2 answers

Ich bin selbst darauf gestoßen, um Wetterbilder aus dem Internet während einer Diashow zu aktualisieren.

Da Powerpoint die Bilddateien in sich selbst speichert, während die Diashow ausgeführt wird, werden die Bilder nicht aktualisiert.

Dies bedeutet, dass Sie es auslösen müssen, um die Links mithilfe von VBA-Code zu aktualisieren, oder verwenden Sie ein Add-In wie; Links während des Diashow-Add-Ins für PowerPoint 97 oder höher aktualisieren oder LiveImage-eingefügtes verknüpftes Bild in Echtzeit aktualisieren PowerPoint - .

Ich benutze dieses Programm nicht mehr und kann den Code, den ich einmal verwendet habe, nicht finden. Die obigen Informationen sollten Ihnen helfen, dorthin zu gelangen, wo Sie sein möchten.

 6
Author: CharlieRB,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2017-05-23 12:41:51

Folgendes hat bei mir funktioniert. Installieren Sie zuerst das add-in - AutoEvents. Im folgenden Beispiel wird eine fortlaufende PowerPoint-Präsentation mit 2 Folien verwendet (wenn Sie mehr haben, ändern Sie die if-Anweisung im dritten Makro in die Nummer Ihrer letzten Folie). Erstellen Sie drei Subs, die dasselbe tun:

  1. Sub Auto_ShowBegin()
  2. Sub Auto_Open()
  3. Sub OnSlideShowPageChange(ByVal SSW Als SlideShowWindow)

Auto_ShowBegin() und Auto_Open () sind gleich.

    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

Und das Dritte makro:

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
Author: Robin Trietsch,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2014-06-06 19:14:41