Eine Familie von Microsoft-Präsentationsgrafikprodukten, die Tools zum Erstellen von Präsentationen und Hinzufügen von Grafikeffekten wie Multimediaobjekten und Spezialeffekten mit Text bieten.
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