VBATools

Zapis tekstu z prezentacji PP do Worda

by on Oct.13, 2011, under Porady, Power Point, Word

PP_Export_to_WordJak skopiować tekst tekst z prezentacji?

Jest kilka metod, jednakże aby zachować układ elementów i podkład slajdu to najlepiej będzie wyeksportować go, po przez “Zapisz jako” każdy slajd jako plik graficzny (np PNG), a następnie wklejenie do Word. Jednakże tym sposobem nie jesteśmy w stanie edytować tekstu.

Innym sposobem jest użycie w Wordzie funkcji Menu/Wstawienie/tekst -> Obiekt. Jednakże w ten sposób można tylko przypiąć link do pps lub osadzić prezentacje w dokumencie.

PP_Export_to_Word2

Zwykłe zaznaczenie danych metodą [Ctrl+C] i wklejenie w otwartym dokumencie Word [Ctrl+V] przenosi obiekty prezentacji. Tym sposobem mamy mnóstwo niepotrzebnych śmieci.

Jest jeszcze inny, ciekawy sposób, pozwalający na edycję w Wordzie, jednakże trzeba troszkę sobie przygotować do tego grunt.

Opcja ta nazywa się “Publikuj” exportuje ona dane w ustalonym układzie (rys1.)

Import może ograniczyć wielkość slajdów i w przypadku wielu stron należy je dopasować wielkością (rys2.)

Eksport ten jest dość łatwy, ale jego efektem jest osadzenie w przeźroczyste ramki wszystkich slajdów prezentacji, które należy potem scalić lub usunąć (rys3.)

W tym artykule podam jeszcze jeden sposób, realizujący eksport tekstu kodem VBA.

PP_Export_to_Word3

Wywołanie środowiska VBA wywołuje się skrótem klawiszowym [Alt+F11]. Umieszczenie doku: Menu/Insert/Module

Poniżej przedstawiam kod realizujący opisujące zadanie:

Sub Kopia_Tekstow_PP_do_Worda()
'MVP OShon from VBATools.pl
Dim shp As Shape, sl&, i&
Dim gshp As GroupShapes
Dim wdApp As Object
Set wdApp = CreateObject("Word.Application")
 wdApp.Visible = True
 wdApp.Documents.Add

With wdApp.Selection
 For sl = 1 To ActivePresentation.Slides.Count
 .TypeText Text:="------------- Slajd: " & sl & " -----------------" & vbCr
 For Each shp In ActivePresentation.Slides(sl).Shapes
 On Error Resume Next
 .TypeText Text:=Trim(shp.TextFrame.TextRange) & vbCr
 Set gshp = shp.GroupItems
 If shp.Type = msoPlaceholder Then
  If shp.PlaceholderFormat.ContainedType = msoSmartArt Then
   For i = 1 To gshp.Count
     If gshp(i).TextFrame.HasText Then _
    .TypeText Text:=Trim(gshp(i).TextFrame.TextRange.Text) & vbCr
   Next
  End If
 End If
 Next shp
 Next sl
End With

Set gshp = Nothing
Set wdApp = Nothing
MsgBox "Export wykonany!", vbInformation, "VBATools.pl"
End Sub

Wywołanie kodu po przez [F8] z PP lub [F5] z Developera VBA.

 

(c) Shon Oskar – www.VBATools.pl

Wszelkie prawa zastrzeżone. Żadna część ani całość tego artykułu nie może być powielana ani publikowana bez zgody autora.
:, , , ,

2 Comments for this entry

Leave a Reply