Word-Makro, um PP-Folie einzufügen

Kaeschdin

Erfahrenes Mitglied
Hallo zusammen!

Ich möchte in Word ein Makro ausführen, das an der Stelle das Cursors den Inhalt einer Powerpoint-Folie als Bitmap einfügt (auf der Folie ist eine Zeichnung, die sich in Word besser drehen und skalieren lässt, wenn sie ins Bitmap-Format konvertiert wird).

Die notwendigen Schritte (das Word-Dokument ist natürlich schon geöffnet):

1. Powerpoint öffnen
2. Powerpoint-Datei öffnen
3. Alles markieren
4. Kopieren
5. Powerpoint-Dokument schließen
6. in Word-Dokument wechseln
7. Bearbeiten - Inhalte einfügen
8. Als Bitmap einfügen
9. Word-Dokument speichern

Ich habe die Schritte mal als Makro aufgezeichnet, aber es lässt sich danach nicht ausführen. Wenn ich mir den Code so anschaue, scheint es mir, als erkenne er nicht, dass ich eine Powerpoint-Datei öffne. Zudem hat er wohl Probleme mit dem Menü-Punkt "Inhalt einfügen".

Ist das Problem lösbar?
 
besser: als bilddatei speichern!

morgen,
ich glaube, dass es besser ist, die Präsentation als Bilddatei zu speichern und anschließend in das Worddokument einzufügen. Habe dir dazu mal schnell ein Beispiel geschrieben. diesen code bitte in dein Worddokument einfügen - und los geht es.

Code:
Public Sub get_Presentation()
Dim n_Pres As Object

Set n_Pres = GetObject("C:\WINDOWS\Desktop\hallo.ppt") 'hier den Pfad der  PPT-Datei angeben

t_name = Left(n_Pres.Name, Len(n_Pres.Name) - 4)
n_Pres.SaveAs "C:\WINDOWS\Desktop\" & t_name, ppSaveAsJPG

Set n_Pres = Nothing

Selection.InlineShapes.AddPicture FileName:= _
        "C:\WINDOWS\Desktop\" & t_name & "\Folie2.JPG", LinkToFile:=False, _
        SaveWithDocument:=True
End Sub

Wichtig: Vorher unbedingt über "Extras->Verweise..." die "Microsoft PowerPoint Objekt Library" hinzufügen!

gruß
thekorn
 
Hallo,

danke für Deine Antwort.

Leider funktioniert es nicht.

Der Debugger markiert:

Selection.InlineShapes.AddPicture FileName:= _
"C:\" & t_name & "\LogischeDarstellung1100User.JPG", LinkToFile:=False, _
SaveWithDocument:=True

... und meckert, dass es kein gültiger Dateiname ist :(

Allerdings legt er auf C:\ einen Ordner an und speichert die beiden Folien des PPT als Folie1.jpg und Folie2.jpg ab.

EDIT:

Wenn ich den oben von mir zitierten JPG-Namen als Folie2.jpg belasse, funktioniert es. Wie bekomm ich es hin, dass er mir nicht nur die zweite Folie, sondern mehrere bzw. alle ausgibt?
 
Zuletzt bearbeitet:
for-schleife

zur erklärung:
mit "saveAs" werden alle Folien in einem Ordner gespeichert. Dieser Ordner hat hier den Namen der Präsentation. Die einzelnen Bilder haben dann den Namen "Folie + Foliennummer + .jpg".
Willst du alle Bilder einfügen, musst du eine For..Next-Schleife bemühen. Dies könnte dann zum Beispiel so aussehen:

Code:
Public Sub get_Presentation()
Dim n_Pres As Object
Dim anz_folien As Integer

Set n_Pres = GetObject("C:\WINDOWS\Desktop\hallo.ppt") 'hier den Pfad der  PPT-Datei angeben

t_name = Left(n_Pres.Name, Len(n_Pres.Name) - 4)
n_Pres.SaveAs "C:\WINDOWS\Desktop\" & t_name, ppSaveAsJPG
anz_folien = n_Pres.Slides.Count

Set n_Pres = Nothing

For i = 1 to anz_folien
Selection.InlineShapes.AddPicture FileName:= _
        "C:\WINDOWS\Desktop\" & t_name & "\Folie" & i & ".JPG", LinkToFile:=False, _
        SaveWithDocument:=True
Next i
End Sub

gruß
thekorn
 
Super. Vielen lieben Dank.

Wenn ich z.B. Folie 1 und 3 brauche, ändere ich Dein erstes Posting folgendermaßen?

"C:\WINDOWS\Desktop\" & t_name & "\Folie1.JPG" & "\Folie3.JPG",

Stimmt das?
 
NÖ!

Ne, das geht hier leider nicht, multiselection ist nicht möglich.
was du machen könntest, ist, dass du alle Foliennummern, die ausgegeben werden sollen in ein array schreibst. Die Elemente des Arrays können dann anschließend bei der Ausgabe schrittweise ausgelesen werden!

gruß
thekorn
 

Neue Beiträge

Zurück