VBATools

Zmiana ścieżki do obiektów w PP

by on Oct.07, 2011, under Porady, Power Point

Często zdarza się że przygotowana wcześniej prezentacja musi zostać przeniesiona w inne miejsce i z niego zaprezentowana. Od tego miejsca zależy czy podpięte pliki animacji (filmy) w naszej prezentacji będą działać prawidłowo (odtwarzać materiał).

Podpinanie ich ponownie jest czasochłonne, ponieważ należy ponownie osadzić obiekt oraz dobrać parametry slajdu.

Można jednak temu zaradzić wpisując nową ścieżkę do plików w komunikat poniższej procedury:

Sub Change_URL_To_Movies()
'MVP OShon from VBATools.pl
Dim oSl As Slide, oHl As Shape, File$, ile&, New_path$
New_path = InputBox("Wpisz scieżkę do plików:", _
 "Wstawianie nowej scieżki", ActivePresentation.Path)
If FileExists(New_path) = False Or Len(New_path) = 0 Then _
 MsgBox "Podana ścieżka nie istnieje!", vbExclamation, "VBATools.pl": Exit Sub
If Left(New_path, 1) <> "" Then New_path = New_path & ""
On Error GoTo blad
 For Each oSl In ActivePresentation.Slides
   For Each oHl In oSl.Shapes
    If oHl.Type = 16 Then
     With oHl.LinkFormat
      File = Dir(.SourceFullName)
      .SourceFullName = New_path & File
      ile = ile + 1
     End With
    End If
   Next
 Next
 If ile > 0 Then
  MsgBox "podmieniono ścieżki." & vbCr & "Można sprawdzic prezentacje.", _
  vbInformation, "VBATools.pl"
 Else
  MsgBox "Nie znaleziono żadnych plików z animacją.", _
  vbExclamation, "VBATools.pl"
 End If
Exit Sub
blad:
 MsgBox "Błąd: " & Err.Number & vbCr & Err.Description, _
 vbCritical, "VBATools.pl"
End Sub

Private Function FileExists(FilePath As String) As Boolean
On Error GoTo blad
 FileExists = Len(Dir(FilePath, vbDirectory Or vbHidden Or vbSystem)) > 0
Exit Function
blad:
FileExists = False
End Function

Procedurę tą osadzamy w developerze VBA PowerPointa [Alt+F11] Menu/Insert/Module, którą następnie możemy odpalić przy pomocy klawisza [F5].

W przypadku aktualizacji łączy do wykresów, gdzie dane źródłowe są umieszczone w plikach Excela, należy zmienić warunek typu na:

If oHl.HasChart Then

Na podstawie pow kodu przekonał się o tym ml39882, nowy kolega z naszego forum. Inne obiekty osadzone w prezentacjach wyglądają podobnie. Spróbuj ten kod zmienić.

 

(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

  • ewa

    Czy może mi ktoś pomóc przerobić to makro tak, zeby działało do linków w excelu. Zmieniłam ten jeden warunek tak jak jest opisane, ale nie działa. Niestety nie znam VBA w ogóle. Czy jeszcze coś powinnam zmienić? Mam prezentację w power poincie która ma łącza do kilkunastu plików excelowych i chcialabym szybko podmienić te łącza na nowe pliki z nowym miesiącem. Z góry dziękuję za pomoc.

Leave a Reply

Recently Active Members

Profile picture of vbatools
Profile picture of Karol Stilger
Profile picture of Joanna Subik
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