Powerpoint: jak wstawić właściwość dokumentu (inaczej „pole”) do slajdu?

31

Jak mogę wstawić właściwość dokumentu (np. Nazwisko autora) do slajdu w PowerPoint 2007? Wiem, że można to zrobić w programie Microsoft Word, ale nie mogę znaleźć tego w programie PowerPoint.

(Chodzi o to, że w przypadku właściwości dokumentu łatwo jest zmienić np. Zawartość stopki na wszystkich slajdach, nawet jeśli używasz różnych stron wzorcowych. Jeśli istnieje inne rozwiązanie, to też byłoby dobrze.)

Rabarberski
źródło

Odpowiedzi:

19

Chociaż Word może to zrobić, PowerPoint nie. AFAIK, możesz mieć właściwości dokumentu w PPT, ale nie możesz wstawić ich na slajdzie. Jedyne dostępne pole aktualizacji dla programu PowerPoint to data i numer slajdu. W każdym razie w VBA może być pewne obejście tego problemu. Możesz poprosić o to na Stackoverflow, aby zaryzykować.

Mehper C. Palavuzlar
źródło
6

Właśnie napisałem podprogram, aby umieścić nazwane właściwości w oznaczonych obiektach tekstowych na wszystkich slajdach.

Aby umieścić właściwość pliku na slajdach. Utwórz pole tekstowe do przechowywania ciągu. W właściwości / Tekst alternatywny umieść nazwę właściwości w nawiasach kwadratowych.

Następnie uruchom makro updateProperties().

tzn. [title]- pozwoliłoby na aktualizację tytułu dokumentu na wielu

Napisano dwa specjalne tagi:

  • [copyright]wstawiłby ciąg praw autorskich, tj. © 1998-2013 P.Boothroyd, NIS Oskemen
  • [page] wstawiłby numer slajdu z zakładki edytora
  • „Skopiuj właściwości dokumentu na wszystkie slajdy
    „(c) 2013, P.Boothroyd dla NIS Oskemen
    Przyciemnij stronę jako slajd
    
    Sub updateProperties ()
        Przyciemnij stronę jako slajd
        Dim propname As String
        „parsuj wszystkie slajdy w aktywnej prezentacji (dokument)
        Dla każdego procesuPage w Application.ActivePresentation.Slides
            'skanuj wszystkie elementy strony w poszukiwaniu pola tekstowego z oznaczonym polem „altText / title” za pomocą „[”
            Dla każdego obiektu In processPage.Shapes
                If Left (obj.Title, 1) = "[" To
                    Dim sStart, sEnd As Integer
                    „wyodrębnij właściwość z nawiasów kwadratowych
                    sStart = 2
                    sEnd = InStr (2, obj.Title, "]")
                    propname = Trim (Mid (obj.Title, sStart, sEnd - 2))
                    Jeśli obj.Type = msoTextBox Wtedy
                        'ustawić pole tekstowe na żądaną wartość
                        obj.TextFrame.TextRange.Text = getProperty (propname, obj.TextFrame.TextRange.Text)
                    End If
                End If
            Dalej 'obj
        Następna strona
    Napis końcowy
    
    'pobierz właściwość nazwanego dokumentu (z opcjonalnym domyślnym)
    Funkcja getProperty (nazwa propozycji, opcjonalnie def As String) As String
        „właściwość ma przypisaną wartość domyślną
        getProperty = def
        Dim znaleziono jako Boolean
        znaleziono = Fałsz
        propname = LCase (nazwa propozycji)
    
        „prawo autorskie jest własnością generowaną
        Jeśli propname = „copyright”, to
            Dim autor As String
            Dim company As String
            Dim yearFrom As String
            Dim yearTo As String
    
            „uzyskaj wszystkie odpowiednie zmienne
            autor = getProperty („autor”, „”)
            firma = getProperty („firma”, „”)
            yearFrom = getProperty („utworzono”, „”)
            yearTo = Format (Now (), „RRRR”)
    
            „wstaw symbol praw autorskich
            getProperty = Chr (169) + „”
    
            „dołącz okres, aby uzyskać informację o prawach autorskich
            Jeśli rok Od roku Do To
                getProperty = getProperty + yearFrom + „-”
            End If
            getProperty = getProperty + yearTo
    
            „dodaj autora
            getProperty = getProperty + "" + autor
    
            'dodaj separator dla autora / firmy, jeśli oba istnieją
            Jeśli Len (autor)> 0 I Len (firma)> 0 To
                getProperty = getProperty & ","
            End If
            getProperty = getProperty i firma
    
            'przetworzone, więc zwróć wartość
            znaleziono = Prawda
        End If
    
        „wstaw numer slajdu do dokumentu
        Jeśli propname = "strona", to
            getProperty = processPage.SlideNumber
            znaleziono = Prawda
        End If
    
        „jeśli utworzona nazwa wygenerowana zwraca wartość
        Jeśli znaleziono, to GoTo ret
    
        „skanuj w poszukiwaniu standardowych właściwości MS (pliku) o podanej wartości
        Dla każdego pw Application.ActivePresentation.BuiltInDocumentProperties
            Jeśli LCase (p.Name) = nazwa propozycji to
                getProperty = p.Value
                znaleziono = Prawda
                Wyjdź dla
            End If
        Dalej „p
    
        „wyszukaj niestandardowe właściwości o podanej wartości
        Jeśli znaleziono, to GoTo ret
        Dla każdego pw Application.ActivePresentation.CustomDocumentProperties
            Jeśli LCase (p.Name) = nazwa propozycji to
                getProperty = p.Value
                znaleziono = Prawda
                Wyjdź dla
            End If
        Dalej „p
    gnić:
    Funkcja zakończenia
    
    P.Boothroyd
    źródło
    1

    Obejściem tego problemu jest użycie właściwości niestandardowych, które można łatwo „Iść do” (nie trzeba przedzierać się przez slajdy).

    Od http://msdn.itags.org/powerpoint/4426/ :

    1. Wybierz kształt lub tekst, dla którego chcesz ustawić zakładkę.
    2. Wybierz Plik | Właściwości ... i aktywuj kartę Niestandardowe.
    3. Wpisz nazwę zakładki.
    4. Zaznacz „Link do treści”. Wartość wymieniona w sąsiednim polu rozwijanym po zaznaczeniu „Link do treści” jest odniesieniem do twojego wyboru.
    5. Kliknij Dodaj.
    6. Kliknij przycisk OK, aby zamknąć okno dialogowe Właściwości.

    Po utworzeniu zakładki możesz przejść do niej w następujący sposób:
    1. Wybierz Edytuj | Przejdź do właściwości ...
    2. Kliknij nazwę właściwości w oknie dialogowym (jest to nazwa nadana zakładce).
    3. Kliknij Idź do.

    Okno dialogowe „Idź do” przedstawia listę zakładek, które można kliknąć dwukrotnie, i przechodzi do ulubionych pól tekstowych, gotowych do edycji / wklejenia.

    haker
    źródło
    1

    Najłatwiejszym sposobem na to w Powerpoint (przynajmniej dla wartości, które pojawią się na każdym slajdzie) jest edycja wzorca slajdów. Wpisz tam nazwisko autora.

    (Możliwym powodem, dla którego Word pozwala ci i nikomu innemu, jest to, że różne zespoły w Microsoft rzadko ze sobą rozmawiają ...)

    Tor Iver Wilhelmsen
    źródło
    1
    Zobacz drugi akapit mojego pytania: „... nawet jeśli używasz różnych stron wzorcowych ...”
    Rabarberski
    0

    Aktualizacja kodu obsługi z ppt 2019: Trochę zmieniłem procedurę na następny, ponieważ łatwiej jest użytkownikowi końcowemu zmienić „tekst alternatywny” prawym przyciskiem myszy:

        For Each ShapeObj In processPage.Shapes
             If Left(ShapeObj.AlternativeText, 1) = "[" Then
            'If Left(ShapeObj.Title, 1) = "[" Then
                Dim sStart, sEnd As Integer
                ' extract property from between square brackets
                sStart = 2
                'sEnd = InStr(2, ShapeObj.Title, "]")
                sEnd = InStr(2, ShapeObj.AlternativeText, "]")
                'propname = Trim(Mid(ShapeObj.Title, sStart, sEnd - 2))
                propname = Trim(Mid(ShapeObj.AlternativeText, sStart, sEnd - 2))
                    ShapeObj.TextFrame.TextRange.Text = getProperty(propname, ShapeObj.TextFrame.TextRange.Text)
    
            End If
        Next ' obj
    
    Patric Tilge
    źródło