VBA Tools

Zapis tekstu z prezentacji PP do Worda

napisane przez Oskar w dniu czwartek, 13 Październik, 2011, w kategorii Porady - PowerPoint

Jak 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.

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.

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.

Podziel się ze znajomymi:
  • Print
  • Digg
  • del.icio.us
  • Facebook
  • Google Bookmarks
  • Blip
  • Grono
  • Gwar
  • Kciuk.pl
  • LinkedIn
  • MySpace
  • OSnews.pl
  • Śledzik
  • Spis.pl
  • Technorati
  • Twitter
  • Vala.pl
  • Wahacz.pl
  • Wykop

1 Komentarz do tej wiadomości

Wpisz swój komentarz:

Comment Spam Protection by WP-SpamFree