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

Recently Active Members

Profile picture of vbatools
Profile picture of Joanna Subik
Profile picture of Karol Stilger
Profile picture of Anorak
Profile picture of marcinmachalowski
Profile picture of programistaaccess
Profile picture of piotrpawlik
Profile picture of Emil Wasilewski
Profile picture of kicekpicek
Profile picture of coldfusion
Profile picture of Gosia Borzęcka
Profile picture of lukaszch
Profile picture of itadministracja
Profile picture of farbenia
Profile picture of Łukasz Kałużny
Profile picture of kabzinski
Profile picture of rtynski
Profile picture of leszekbetlinski
Profile picture of Iv
Profile picture of Justyna Spychała