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