Bild von einem Server in einer Folie anzeigen

Anonym
2024-11-19T13:47:29+00:00

Hallo zusammen,

vorab: Ich bin in PowerPoint und auch in VBA leider nicht so bewandert. Ich habe es versucht mit ChatGPT zu lösen, bekomme es aber nicht hin. Ich habe eine Präsentation mit 10 verschiedenen Folien. Die Präsentation läuft 24/7 und beginnt immer wieder von vorn. Auf Folie 4 und 8 möchte ich ein Bild abbilden, weches auf einem im Internet erreichbaren Server liegt. Es ist ein .jpg und ich kann es über die URL direkt aufrufen.

Wichtig: Das Bild hat zwar immer denselben Namen, der Inhalt des Bildes kann sich aber ändern. Ich möchte also, dass bei der Anzeige der o.g. Folien das Bild stets frisch vom Server geladen wird und nichts aus dem Cache geholt wird oder so.

ChatGPT gab mir einen entsprechenden Code, den ich auch versucht habe einzufügen, aber es passiert einfach nichts - die Folie bleibt weiß.

Kann mir da vielleicht jemand weiterhelfen? Oder hat vielleicht jemand eine Beispiel-PowerPoint, die bereits ein funktionierendes Makro oder so enthält, was ich mir dann nur noch anpassen brauche? Ich habe nun den ganzen Tag mit ChatGPT und Google verbracht und nichts funktionierte. Bin langsam am Verzweifeln. 2024 und PowerPoint kann nicht von Haus aus und ohne Hilfe von Scripts und Addons ein Bild einer bestimmten URL anzeigen...

Vielen lieben Dank vorab!

Microsoft 365 und Office | PowerPoint | Für das Bildungswesen | Windows

Gesperrte Frage. Diese Frage wurde aus der Microsoft-Support-Community migriert. Sie können darüber abstimmen, ob sie hilfreich ist, aber Sie können keine Kommentare oder Antworten hinzufügen oder der Frage folgen.

0 Kommentare Keine Kommentare

7 Antworten

Sortieren nach: Am hilfreichsten
  1. Anonym
    2024-11-27T15:43:27+00:00

    Diese Antwort wurde automatisch übersetzt. Daher können grammatikalische Fehler oder seltsame Formulierungen vorkommen.

    Lieber Sven,

    Vielen Dank für Ihre Bemühungen.

    Da sich unsere Community hauptsächlich auf die häufigsten Probleme mit SharePoint Online und integrierten Features konzentriert, muss ich Ihnen leider mitteilen, dass ich keine wesentlichen authentifizierten Informationen zu VBA-Code bereitstellen kann, da dieser außerhalb meines Fachgebiets und Supports liegt. Ich empfehle den Besuch des Stack Overflow – Where Developers Learn, Share, & Build Careers. Die Experten und andere Nutzer dort verfügen über einen großen Wissensschatz und sollten in der Lage sein, Ihnen die detaillierte Hilfe zu geben, die Sie benötigen. Stack Overflow ist die von Microsoft empfohlene Plattform für VBA-Codeabfragen.

    Um den Code zu vereinfachen, können Sie ein Array verwenden, um die Folienindizes zu speichern, und dann überprüfen, ob sich der aktuelle Folienindex in diesem Array befindet. Dadurch wird Ihr Code besser verwaltbar, insbesondere wenn sich die Anzahl der Folien ändert. Um das Problem zu beheben, dass die alte Uhrzeit kurz angezeigt wird, bevor die neue Zeit aktualisiert wird, können Sie außerdem die Zeitform löschen, wenn sich die Folie ändert. Dadurch wird sichergestellt, dass die Uhrzeit immer aktuell ist und verhindert, dass die alte Uhrzeit angezeigt wird. Durch die Implementierung dieser Änderungen wird der Code effizienter, und die Zeitanzeige wird genauer.





    1. Vereinfachung der Schiebeindexprüfung

    Sie können ein Array verwenden, um die Folienindizes zu speichern, und dann überprüfen, ob sich der aktuelle Folienindex in diesem Array befindet. So können Sie Ihren Code ändern:

    Sub OnSlideShowPageChange(ByVal Wn As SlideShowWindow)

        Dim sld Als Folie

        Dim shp Als Form

        Dim UhrzeitShape Als Form

        DatumShape als Shape dimmen

        Dim imgURL als Zeichenfolge

        Dim Uhrzeit As String

        Dimmen von Bezug als Zeichenfolge

        Dim i As Integer

        Dim slideIndices als Variante

        Index als Variante dimmen

        ' URL des Bildes

        imgURL = "https://example.com/example.png"

        ' Array der betroffenen Folien

        slideIndices = Array(1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31, 33, 35)

        ' Auf die aktuelle Folie zugreifen

        Set sld = Wn.View.slide

        ' Nur auf bestimmten Folien ausführen

        Für jeden Index In slideIndices

            Wenn sld.slideIndex = Index Dann

                ' Löschen von Uhrzeit und Datum, falls vorhanden

                Für i = sld. Shapes.Count To 1 Schritt -1

                    Legen Sie shp = sld fest. Formen(i)

                    Wenn shp. Name = "Uhrzeit" Oder shp. name = "Datum" dann

                        Shp. Löschen

                    Ende, wenn

                Weiter i

                ' Bild hinzufügen, falls nicht bereits vorhanden

                Dim BildVorhanden als boolean

                BildVorhanden = Falsch

                Für jeden shp In sld. Gebilde

                    Wenn shp. name = "LiveBild" dann

                        BildVorhanden = Wahr

                        Beenden für

                    Ende, wenn

                Nächster shp

                Wenn nicht BildVorhanden, dann

                    Legen Sie shp = sld fest. Shapes.AddPicture(imgURL, msoFalse, msoCTrue, 20, 150, 920, -1)

                    Shp. Name = "LiveBild"

                Ende, wenn

                ' Aktuelle Uhrzeit und Datum ermitteln

                Uhrzeit = Format(Jetzt, "HH:mm")

                Datum = Format(Jetzt, "dddd, dd.mm.yyyy")

                ' Uhrzeit anzeigen

                Legen Sie UhrzeitShape = sld fest. Shapes.AddTextbox(msoTextOrientationHorizontal, 650, -18, 300, 50) ' Rechts positioniert

                Mit UhrzeitShape.TextFrame.TextRange

                    . Text = Uhrzeit

                    .Font.Name = "Arial Nova"                 ' Schriftart

                    . Font.Size = 76                           ' Schriftgröße

                    . Font.Bold = msoTrue                      ' Fett

                    . Font.Color = RGB(156, 80, 1)             ' Schriftfarbe

                    . ParagraphFormat.Alignment = ppAlignRight ' Rechtsbündig

                Schluss mit

                UhrzeitShape.Name = "Uhrzeit" ' Name des Textfelds

                ' Datum und Wochentag anzeigen

                Legen Sie DatumShape = sld fest. Shapes.AddTextbox(msoTextOrientationHorizontal, 545, 70, 400, 50) ' Rechts positioniert

                Mit DatumShape.TextFrame.TextRange

                    . Text = Datum

                    .Font.Name = "Calibri"                    ' Schriftart

                    . Font.Size = 20                           ' Schriftgröße

                    . Font.Italic = msoTrue                    ' Kursiv

                    . Font.Color = RGB(156, 80, 1)             ' Schriftfarbe

                    . ParagraphFormat.Alignment = ppAlignRight ' Rechtsbündig

                Schluss mit

                DatumShape.Name = "Datum" ' Name des Textfelds

            Ende, wenn

        Nächster Index

    Ende Sub


    2. Beheben des Problems mit der Zeitanzeige

    Um zu verhindern, dass die alte Uhrzeit kurz angezeigt wird, können Sie die Zeitform löschen, wenn sich die Folie ändert. So können Sie Ihren Code anpassen:

    Sub OnSlideShowPageChange(ByVal Wn As SlideShowWindow)

        Dim sld Als Folie

        Dim shp Als Form

        Dim UhrzeitShape Als Form

        DatumShape als Shape dimmen

        Dim imgURL als Zeichenfolge

        Dim Uhrzeit As String

        Dimmen von Bezug als Zeichenfolge

        Dim i As Integer

        Dim slideIndices als Variante

        Index als Variante dimmen

        ' URL des Bildes

        imgURL = "https://example.com/example.png"

        ' Array der betroffenen Folien

        slideIndices = Array(1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31, 33, 35)

        ' Auf die aktuelle Folie zugreifen

        Set sld = Wn.View.slide

        ' Löschen von Uhrzeit und Datum, falls vorhanden

        Für i = sld. Shapes.Count To 1 Schritt -1

            Legen Sie shp = sld fest. Formen(i)

            Wenn shp. Name = "Uhrzeit" Oder shp. name = "Datum" dann

                Shp. Löschen

            Ende, wenn

        Weiter i

        ' Nur auf bestimmten Folien ausführen

        Für jeden Index In slideIndices

            Wenn sld.slideIndex = Index Dann

                ' Bild hinzufügen, falls nicht bereits vorhanden

                Dim BildVorhanden als boolean

                BildVorhanden = Falsch

                Für jeden shp In sld. Gebilde

                    Wenn shp. name = "LiveBild" dann

                        BildVorhanden = Wahr

                        Beenden für

                    Ende, wenn

                Nächster shp

                Wenn nicht BildVorhanden, dann

                    Legen Sie shp = sld fest. Shapes.AddPicture(imgURL, msoFalse, msoCTrue, 20, 150, 920, -1)

                    Shp. Name = "LiveBild"

                Ende, wenn

                ' Aktuelle Uhrzeit und Datum ermitteln

                Uhrzeit = Format(Jetzt, "HH:mm")

                Datum = Format(Jetzt, "dddd, dd.mm.yyyy")

                ' Uhrzeit anzeigen

                Legen Sie UhrzeitShape = sld fest. Shapes.AddTextbox(msoTextOrientationHorizontal, 650, -18, 300, 50) ' Rechts positioniert

                Mit UhrzeitShape.TextFrame.TextRange

                    . Text = Uhrzeit

                    .Font.Name = "Arial Nova"                 ' Schriftart

                    . Font.Size = 76                           ' Schriftgröße

                    . Font.Bold = msoTrue                      ' Fett

                    . Font.Color = RGB(156, 80, 1)             ' Schriftfarbe

                    . ParagraphFormat.Alignment = ppAlignRight ' Rechtsbündig

                Schluss mit

                UhrzeitShape.Name = "Uhrzeit" ' Name des Textfelds

                ' Datum und Wochentag anzeigen

                Legen Sie DatumShape = sld fest. Shapes.AddTextbox(msoTextOrientationHorizontal, 545, 70, 400, 50) ' Rechts positioniert

                Mit DatumShape.TextFrame.TextRange

                    . Text = Datum

                    .Font.Name = "Calibri"                    ' Schriftart

                    . Font.Size = 20                           ' Schriftgröße

                    . Font.Italic = msoTrue                    ' Kursiv

                    . Font.Color = RGB(156, 80, 1)             ' Schriftfarbe

                    . ParagraphFormat.Alignment = ppAlignRight ' Rechtsbündig

                Schluss mit

                DatumShape.Name = "Datum" ' Name des Textfelds

            Ende, wenn

        Nächster Index

    Ende Sub


    Verzichtserklärung:

    Der oben angegebene VBA-Code dient nur zu Informationszwecken. Microsoft haftet nicht für Schäden oder Probleme, die sich aus der Verwendung dieses Codes ergeben können. Benutzern wird empfohlen, diesen Code auf eigenes Risiko zu verwenden. Es wird empfohlen, den Code in einer sicheren Umgebung zu testen, bevor er auf kritische oder Produktionssysteme angewendet wird. Benutzer sollten sicherstellen, dass sie über geeignete Sicherungen verfügen und die potenziellen Auswirkungen des Ausführens des Codes in ihrem spezifischen Kontext verstehen.


    Einen schönen Tag und pass auf dich auf! 😊 

    Aufrichtig 

    Naren | Moderator der Microsoft-Community

    War diese Antwort hilfreich?

    0 Kommentare Keine Kommentare
  2. Anonym
    2024-11-27T15:17:09+00:00

    Hallo Naren,

    vielen Dank für Deine Antwort. Ich habe es versucht, allerdings habe ich mich für eine andere Variante entschieden, die auch funktioniert.
    Ich verwende diesen VBA-Code:

    Sub OnSlideShowPageChange(ByVal Wn As SlideShowWindow) Dim sld As slide
    Dim shp As shape
         Dim UhrzeitShape As shape
         Dim DatumShape As shape
         Dim imgURL As String
         Dim Uhrzeit As String
         Dim Datum As String
         Dim i As Integer

          ' URL des Bildes     
         imgURL = "https://example.com/example.png"
    
          ' Auf die aktuelle Folie zugreifen     
         Set sld = Wn.View.slide
    
          ' Nur auf bestimmten Folien ausführen
         If sld.slideIndex = 1 Or sld.slideIndex = 3 Or sld.slideIndex = 5 Or sld.slideIndex = 7 Or sld.slideIndex = 9 Or sld.slideIndex = 11 Or sld.slideIndex = 13 Or sld.slideIndex = 15 Or sld.slideIndex = 17 Or sld.slideIndex = 19 Or sld.slideIndex = 21 Or sld.slideIndex = 23 Or sld.slideIndex = 25 Or sld.slideIndex = 27 Or sld.slideIndex = 29 Or sld.slideIndex = 31 Or sld.slideIndex = 33 Or sld.slideIndex = 35 Then
             ' Löschen von Uhrzeit und Datum, falls vorhanden
             For i = sld.Shapes.Count To 1 Step -1
                 Set shp = sld.Shapes(i)
                 If shp.Name = "Uhrzeit" Or shp.Name = "Datum" Then
                     shp.Delete
                 End If
             Next i
    
              ' Bild hinzufügen, falls nicht bereits vorhanden
             Dim BildVorhanden As Boolean
             BildVorhanden = False
             For Each shp In sld.Shapes
                 If shp.Name = "LiveBild" Then
                     BildVorhanden = True
                     Exit For
                 End If
             Next shp
    
              If Not BildVorhanden Then
                 Set shp = sld.Shapes.AddPicture(imgURL, msoFalse, msoCTrue, 20, 150, 920, -1)
                 shp.Name = "LiveBild"
             End If
    
              ' Aktuelle Uhrzeit und Datum ermitteln
             Uhrzeit = Format(Now, "HH:mm")
             Datum = Format(Now, "dddd, dd.mm.yyyy")
    
              ' Uhrzeit anzeigen
             Set UhrzeitShape = sld.Shapes.AddTextbox(msoTextOrientationHorizontal, 650, -18, 300, 50) ' Rechts positioniert
             With UhrzeitShape.TextFrame.TextRange
                 .Text = Uhrzeit
                 .Font.Name = "Arial Nova"                 ' Schriftart
                 .Font.Size = 76                           ' Schriftgröße
                 .Font.Bold = msoTrue                      ' Fett
                 .Font.Color = RGB(156, 80, 1)             ' Schriftfarbe
                 .ParagraphFormat.Alignment = ppAlignRight ' Rechtsbündig
             End With
             UhrzeitShape.Name = "Uhrzeit" ' Name des Textfelds
    
              ' Datum und Wochentag anzeigen
             Set DatumShape = sld.Shapes.AddTextbox(msoTextOrientationHorizontal, 545, 70, 400, 50) ' Rechts positioniert
             With DatumShape.TextFrame.TextRange
                 .Text = Datum
                 .Font.Name = "Calibri"                    ' Schriftart
                 .Font.Size = 20                           ' Schriftgröße
                 .Font.Italic = msoTrue                    ' Kursiv
                 .Font.Color = RGB(156, 80, 1)             ' Schriftfarbe
                 .ParagraphFormat.Alignment = ppAlignRight ' Rechtsbündig
             End With
             DatumShape.Name = "Datum" ' Name des Textfelds
         End If
     End Sub
    

    Dieser Code macht alles was ich brauche und funktioniert. Mit 2 Einschränkungen, bei denen ich nicht weiterkomme.
    Ich habe oben eine sehr lange Zeile, in denen angegeben wird, welche der Folien betroffen ist. Nämliche diese hier:

    If sld.slideIndex = 1 Or sld.slideIndex = 3 Or sld.slideIndex = 5 Or sld.slideIndex = 7 Or sld.slideIndex = 9 Or sld.slideIndex = 11 Or sld.slideIndex = 13 Or sld.slideIndex = 15 Or sld.slideIndex = 17 Or sld.slideIndex = 19 Or sld.slideIndex = 21 Or sld.slideIndex = 23 Or sld.slideIndex = 25 Or sld.slideIndex = 27 Or sld.slideIndex = 29 Or sld.slideIndex = 31 Or sld.slideIndex = 33 Or sld.slideIndex = 35 Then
    

    Das ist für mich echt umständlich, da sich die Anzahl der Folien auch mal ändern. Besser wäre es für mich, wenn es eine Möglichkeit gäbe, dass ich die Nummern der Folien irgendwo am Stück, mit Komma getrennt eintragen kann - eine Art Array oder sowas - aber dazu kenne ich mich zu wenig aus.

    Zweites Problem. Auf den Folien wird die Uhrzeit ausgegeben. Und das klappt auch soweit. Allerdings wird beim Wechsel der Folien immer zuerst die alte Uhrzeit vom vorherigen Foliendurchlauf angezeigt, bevor die neue (also aktuelle) Uhrzeit angezeigt wird. Genauso direkt vor dem Folienwechsel - auch hier wird die alte Uhrzeit kurz für 1 Sekunde oder sowas angezeigt, bevor der Wechsel zu nächsten Folie erfolgt. Das ist blöd, weil erst eine alte - nicht mehr stimmende - Uhrzeit angezeigt wird - anschließend wird die korrekte Uhrzeit angezeigt und dann wird vor dem Folienwechel wieder kurz die alte, nicht mehr stimmende Uhrzeit angezeigt. Die Uhrzeit springt also immer. Und unser Foliendurchlauf dauert ca. 8 Minuten. Es ist also nicht nur ein Versatz von 1 Minute oder so, sondern die Zeit springt immer gleich um 8 Minuten hin und her. Besser wäre es, wenn ein Wechsel auf die betroffene Folie passiert, es gar keine Uhrzeig gibt und dann die Uhrzeit erscheint. Am besten wäre es wohl, wenn die Uhrzeit von der Folie entfernt wird, nachdem auf die nächste Folie gewechselt wurde. Dann ist sie beim nächsten Aufruf erst einmal leer, bevor die aktuelle Uhrzeit eingeblendet wird. Das würde das Problem mit der springenden Uhrzeit unmittelbar nach dem Wechsel auf die betroffene Folie und vor dem Wechsel zur nächsten Folie sicher verhindern.

    Es wäre toll, wenn es für die beiden Sachen eine Lösung gäbe.
    Kannst Du, oder jemand anderes, hier weiterhelfen?

    War diese Antwort hilfreich?

    0 Kommentare Keine Kommentare
  3. Anonym
    2024-11-24T04:27:30+00:00

    Diese Antwort wurde automatisch übersetzt. Daher können grammatikalische Fehler oder seltsame Formulierungen auftreten.

    Lieber Sven,

    Guten Tag.

    Es tut mir leid zu hören, dass der Code bei Ihnen nicht funktioniert hat. Dateien oder Links kann ich leider nicht direkt versenden, aber ich kann Ihnen eine Schritt-für-Schritt-Anleitung geben, wie Sie das PowerPoint mit dem Makro erstellen. Wenden Sie sich an einen Experten, um sicherzustellen, dass der Code in Ihrer Umgebung ordnungsgemäß funktioniert.

    1. Öffnen Sie PowerPoint und VBA-Editor: Öffnen Sie Ihre PowerPoint-Präsentation. Drücken Sie ALT+F11, um den VBA-Editor zu öffnen.
    2. Neues Modul einfügen: Klicken Sie im VBA-Editor auf > Modul einfügen. Kopieren Sie den folgenden Code, und fügen Sie ihn in das Modul ein:

     Sub LoadImageFromURL(slideIndex als Ganzzahl, imageUrl als Zeichenfolge)

    Dimmfolie als Folie

    Dunkle Form als Form

    HTTP als Objekt dimmen

    dim imageBytes() als Bytes

    Dim tempFilePath als Zeichenfolge

    ' Schieben Sie die Folie ein

    Festlegen der Folie = ActivePresentation.Slides(slideIndex)

    'Erstellen Sie ein XMLHTTP-Objekt, um das Bild herunterzuladen

        Set http = CreateObject("MSXML2. XMLHTTP")

    http. Öffnen Sie "GET", imageUrl, False

    http.senden

    "Holen Sie sich die Bild-Bytes

        imageBytes = http.responseBody

    Speichern Sie das Bild in einer temporären Datei

    tempFilePath = Umgebung("TEMP") & "\tempImage.jpg"

    Mit CreateObject("ADODB. Bach")

    . Typ = 1' Binär

    . Offen

    . imageBytes schreiben

    . SaveToFile tempFilePath, 2' Überschreiben

    . Schließen

    Nicht mehr

    ' Vorhandenes Bild löschen, falls vorhanden

    Für jede Form in der Folie. Form

    Wenn Form. Geben Sie = msoPicture Then shape ein. Löschen

    Nächste Form

    Hinzufügen des Bilds zur Folie

    gleiten. Shapes.AddPicture tempFilePath, msoFalse, msoCTrue, 0, 0, -1, -1

    Ende Sub

    Sub OnSlideShowPageChange()

    Dim slideIndex als Ganzzahl

        slideIndex = SlideShowWindows(1). View.CurrentShowPosition

    ' Laden von Bildern auf bestimmte Folien

    Wenn slideIndex = 4, dann

            LoadImageFromURL 4, "http://yourserver.com/image.jpg"

    ElseIf slideIndex = 8 Dann

            LoadImageFromURL 8, "http://yourserver.com/image.jpg"

    Ende, wenn

    Ende Sub

    1. Hinzufügen von Code zu ThisPresentation: Suchen Sie im VBA-Editor unter Microsoft PowerPoint-Objekten nach ThisPresentation. Doppelklicken Sie auf ThisPresentation, und fügen Sie den folgenden Code hinzu:

    Private Sub PresentationSlideShowNextSlide(ByVal Wn As SlideShowWindow)

    OnSlideShowPageÄndern

    Ende Sub

    1. Bild-URL ersetzen: Achte darauf, dass du "**http://yourserver.com/image.jpg**" durch die tatsächliche URL deines Bildes ersetzt.
    2. Speichern und ausführen: Speichern Sie Ihre Präsentation. Starten Sie die Diashow, um zu sehen, ob die Bilder auf den Folien 4 und 8 korrekt geladen werden.

    Wenn Sie diese Schritte ausführen und es immer noch nicht funktioniert, liegt möglicherweise ein Problem mit der Umgebung oder bestimmten Einstellungen in PowerPoint vor. In diesem Fall wäre es ein guter nächster Schritt, sich mit den Details des Problems und der Code, den Sie ausprobiert haben. Sie haben eine große Community, die zusätzliche Erkenntnisse und Lösungen anbieten kann.

    Einen schönen Tag und passen Sie auf sich auf! 😊 

    Ehrlich

    Naren | Moderator der Microsoft-Community

    War diese Antwort hilfreich?

    0 Kommentare Keine Kommentare
  4. Anonym
    2024-11-21T08:29:38+00:00

    Hallo Naren,

    vielen Dank für Deine Hilfe. Leider funktioniert der Code bei mir nicht. Ich nehme mal an, dass der Code automatisch ins deutsche Übersetzt wurde. Leider kann ich hier mir Deinen Post nicht im Original anzeigen lassen. Wäre es Dir möglich, mir eine PowerPoint, welche bereits das Makro enthält zu schicken? Oder einen Link dazu? Das würde mir sehr helfen. Danach werde ich mich dann gerne an Stack Overflow wenden.
    Liebe Grüße

    War diese Antwort hilfreich?

    0 Kommentare Keine Kommentare
  5. Anonym
    2024-11-19T15:09:56+00:00

    Diese Antwort wurde automatisch übersetzt. Daher können grammatikalische Fehler oder seltsame Formulierungen vorkommen.

    Lieber Lungile,

    Guten Tag! Vielen Dank, dass Sie sich an die Microsoft-Community gewandt haben. Wir sind hier, um Ihnen zu helfen.

    Nach meinem Verständnis möchten Sie, dass die Bilder jedes Mal aktualisiert werden, wenn die Folien angezeigt werden, um sicherzustellen, dass die neueste Version angezeigt wird. Sie suchen nach einem funktionierenden VBA-Makro oder einer PowerPoint-Beispieldatei, um diese Funktionalität zu erreichen.

    Da sich unsere Community jedoch hauptsächlich auf die allgemeinen Probleme mit SharePoint Online und integrierten Funktionen konzentriert und diese spezielle Abfrage möglicherweise speziellere Unterstützung erfordert, empfehle ich den Besuch des Stack Overflow - Where Developers Learn, Share, & Build Careers. Die Experten und anderen Nutzer dort verfügen über einen großen Wissensschatz und sollten in der Lage sein, Ihnen die detaillierte Hilfe zu leisten, die Sie benötigen. Der Stack-Überlauf ist die von Microsoft empfohlene Plattform für VBA-Codeabfragen.

    In der Zwischenzeit stelle ich Ihnen ein VBA-Makro zur Verfügung, das alle vorhandenen Bilder auf den Folien 4 und 8 löscht und dann das Bild von der angegebenen URL hinzufügt. Das Unterprogramm OnSlideShowPageChange stellt sicher, dass das Bild jedes Mal aktualisiert wird, wenn Sie während der Diashow zu den Folien 4 und 8 navigieren. Sie müssen sicherstellen, dass Sie **http://yourserver.com/yourimage.jpg** durch die tatsächliche URL Ihres Bildes ersetzen .

    Öffnen Sie Ihre PowerPoint-Präsentation. Drücken Sie Alt + F11 , um den VBA-Editor zu öffnen. Fügen Sie ein neues Modul ein, indem Sie auf > Modul einfügen klicken . Kopieren Sie den folgenden Code, und fügen Sie ihn in das Modul ein:

    Abo RefreshImages()

        Dim slideIndex als Ganzzahl

        Folie als Folie dimmen

        Dim imageUrl als Zeichenfolge

        Dunkle Form Als Form

        ' URLs der Bilder

        imageUrl = http://yourserver.com/yourimage.jpg

        ' Durchlaufen Sie die Folien 4 und 8

        Für jede FolieIndex im Array(4, 8)

            Festlegen der Folie = ActivePresentation.Slides(slideIndex)

            Für jede Form in der Folie. Gebilde

                Wenn Form. Geben Sie dann = msoPicture ein

                    Form. Löschen

                Ende, wenn

            Nächste Form

            gleiten. Shapes.AddPicture(imageUrl, _

                                    msoFalse, msoCTrue, _

                                    0, 0, -1, -1)

        Nächste FolieIndex

    Ende Sub

    Sub OnSlideShowPageChange(ByVal SSW als SlideShowWindow)

        Wenn SSW. View.CurrentShowPosition = 4 oder SSW. View.CurrentShowPosition = 8 dann

            Bilder aktualisieren

        Ende, wenn

    Ende Sub

    Nachdem Sie den obigen Code hinzugefügt haben, schließen Sie bitte den VBA-Editor. Drücken Sie ALT+F8, wählen Sie Images aktualisieren aus , und klicken Sie auf Ausführen , um das Makro zu testen.

    Falls Sie weitere Unterstützung für den obigen Code benötigen, posten Sie Ihre Anfrage bitte in Beiträge mit 'powerpoint vba to link image' - Stack Overflow.

    Einen schönen Tag und pass auf dich auf! 😊 

    Aufrichtig 

    Naren | Moderator der Microsoft-Community

    War diese Antwort hilfreich?

    0 Kommentare Keine Kommentare