Ich arbeite an einem Add-In, um einige Berichte zu automatisieren.
- Es gibt eine PowerPoint-Berichtsvorlagendatei, die Links zu Bilddateien verschiedener Diagramme und Tabellen enthält. (siehe Anhang)
- Wenn der Benutzer auf die Schaltfläche „Zum aktiven Bericht hinzufügen“ klickt, wird die entsprechende Bilddatei überschrieben, sodass das neue Diagramm oder die neue Tabelle im Bericht angezeigt wird.
Das Problem, das ich habe, ist, dass ich die Links im PowerPoint-Dokument aktualisieren muss.Ich möchte in der Lage sein, "Neuen Bericht erstellen" zu sagen, die Vorlage und die Standardbilder in einen neuen Ordner zu kopieren und die Links in der neuen PowerPoint-Datei so zu aktualisieren, dass der Verweis auf die Bilddateien im neuen Ordner statt auf die Bilddateien im Vorlagenordner.Irgendwelche Ideen, wie ich das machen könnte?
Danke vielmals,
John
Hi @johnmoore , ich stand vor etwas Ähnlichem, ich kenne die Schwierigkeit, Pakete mit Unternehmensvorlagen in Power Point zu aktualisieren, und muss etwa 300 Bilder von Anova, Variabilitätsdiagramme, Cpk-Berichte usw. aktualisieren, die in JMP erstellt wurden, wo jedes Power Point-Paket "im Grunde dasselbe enthält charts", immer an der gleichen Stelle, der einzige Unterschied sind die Rohdaten, die für den jeweiligen Bericht benötigt werden.
Ich bin kein wirklicher VBA-Experte, aber wenn Sie etwas brauchen, suchen Sie überall und versuchen und versuchen, eine Lösung zu finden.
Dies ist der Ansatz, den ich verfolge, vielleicht haben Sie bisher etwas Ähnliches:
- Senden Sie in JMP Ihre Analyse (Bilder) über JSL an einen Ordner auf Ihrem PC und weisen Sie jedem Bild einen bestimmten Namen zu (benennen Sie sie niemals gleich, da sie nur dann überschrieben werden). Sobald Sie in Power Point den Speicherort jedes einzelnen Bildes angepasst und den Link für jedes Bild erstellt haben, speichern Sie es als Makrodatei (dies wird Ihre Vorlage sein).
- Öffnen Sie Ihre Vorlage und führen Sie das Makro aus, wann immer Sie einen neuen Bericht benötigen.
- Speichern Sie die Datei schließlich als kein Makro und unter einem anderen Namen, um die Vorlage mit Bildern für das nächste Mal bereit zu halten.
Ich hoffe, das kann Ihnen helfen, ich empfehle Ihnen dringend, das Makro mit einem Passwort zu versehen, um Änderungen im Skript zu vermeiden.
Grüße.
Sub LinkedGraphsToPictures()
'Erstellt von Andres Gonzalez, März 2019
'Zweck: Verknüpfte Graphen in normale Bilder umwandeln
Dim shp als Form
Dim sld As Slide
Dim pic als Form
Dim shp_left As Double
Dim shp_top als Double
Dim sld_count As Long
'Durchlaufen Sie jede Folie in ActivePresentation
Für jedes sld in ActivePresentation.Slides
Für sld_count = ActivePresentation.Slides.Count To 1 Step -1
' Zählen Sie bis -1, um rückwärts zu zählen, um das Überspringen von Diagrammen aufgrund eines gelöschten Diagramms zu vermeiden
Set sld = ActivePresentation.Slides(sld_count)
Für jeden shp in sld.Shapes
Wenn shp.Type = msoLinkedPicture Then
'Aktuelle Positionierung abrufen
shp_left = shp.Links
shp_top = shp.Oben
'Als Bild kopieren/einfügen
shp.Copy
sld.Shapes.PasteSpecial DataType:=ppPastePNG
Set pic = sld.Shapes(sld.Shapes.Count)
'Verknüpfte Form löschen
shp.Löschen
'Neu eingefügtes Bild neu positionieren
pic.Left = shp_links
pic.Top = shp_top
Ende Wenn
Nächster shp
Nächster sld_count
Nächstes sld
End Sub