Powerpoint: как вставить свойство документа (ака "поле") в слайд?

Как вставить свойство документа (например, имя автора) в слайд в PowerPoint 2007? Я знаю, что это можно сделать в Microsoft Word, но я не могу найти как это сделать в PowerPoint.

(идея заключается в том, что с помощью свойства документа легко изменить, например, содержимое нижнего колонтитула во всех слайдах, даже если вы используете разные мастер-страницы. Если есть другое решение, это тоже было бы хорошо.)

5
задан Rabarberski
17.04.2023 23:30 Количество просмотров материала 3175
Распечатать страницу

4 ответа

в то время как Word может сделать это, PowerPoint не может. AFAIK, вы можете иметь свойства документа в PPT, но вы не можете вставить их на слайд. Единственное поле обновления доступны для PowerPoint-это дата и номер слайда. Во всяком случае, в VBA может быть какой-то обходной путь для достижения этой цели. Вы можете спросить об этом на Stackoverflow, чтобы воспользоваться своим шансом.

17
отвечен Mehper C. Palavuzlar 2023-04-19 07:18

просто написал подпрограмму, чтобы поместить именованные свойства в помеченные текстовые объекты на всех слайдах.

поставить файл на слайд(ы). Создайте текстовое поле для хранения строки. В тексте свойства/Alt заключите имя свойства в квадратные скобки.

выполнить макрос updateProperties().

то есть [title] - позволит заголовок документа будет обновляться на несколько

были написаны два специальных тега:

  • [copyright] вставить строка авторских прав, т. е. © 1998-2013 П. сайту boothroyd, НИС-Каменогорске
  • [page] будет вставить номер слайда из вкладки редактора
  • ' Copy document properties into all slides
    ' (c) 2013, P.Boothroyd for NIS Oskemen
    Dim processPage As Slide
    
    Sub updateProperties()
        Dim page As Slide
        Dim propname As String
        ' parse all slides in the active presentation (document)
        For Each processPage In Application.ActivePresentation.Slides
            ' scan all elements of page for textbox with tagged "altText/title" field with "["
            For Each obj In processPage.Shapes
                If Left(obj.Title, 1) = "[" Then
                    Dim sStart, sEnd As Integer
                    ' extract property from between square brackets
                    sStart = 2
                    sEnd = InStr(2, obj.Title, "]")
                    propname = Trim(Mid(obj.Title, sStart, sEnd - 2))
                    If obj.Type = msoTextBox Then
                        ' set the text box to the requested value
                        obj.TextFrame.TextRange.Text = getProperty(propname, obj.TextFrame.TextRange.Text)
                    End If
                End If
            Next ' obj
        Next ' page
    End Sub
    
    ' get the named document property (with optional default)
    Function getProperty(propname, Optional def As String) As String
        ' property assigned the default value
        getProperty = def
        Dim found As Boolean
        found = False
        propname = LCase(propname)
    
        ' copyright is a generated property
        If propname = "copyright" Then
            Dim author As String
            Dim company As String
            Dim yearFrom As String
            Dim yearTo As String
    
            ' get all appropriate variables
            author = getProperty("author", "")
            company = getProperty("company", "")
            yearFrom = getProperty("created", "")
            yearTo = Format(Now(), "YYYY")
    
            ' insert copyright symbol
            getProperty = Chr(169) + " "
    
            ' attach year span for copyright notice
            If yearFrom  yearTo Then
                getProperty = getProperty + yearFrom + "-"
            End If
            getProperty = getProperty + yearTo
    
            ' add the author
            getProperty = getProperty + " " + author
    
            ' add separator for author/company if both exist
            If Len(author) > 0 And Len(company) > 0 Then
                getProperty = getProperty & ", "
            End If
            getProperty = getProperty & company
    
            ' processed, so return the value
            found = True
        End If
    
        ' insert the slide number into the document
        If propname = "page" Then
            getProperty = processPage.SlideNumber
            found = True
        End If
    
        ' if generated name created return the value
        If found Then GoTo ret
    
        ' scan for standard MS (file) properties of the named value
        For Each p In Application.ActivePresentation.BuiltInDocumentProperties
            If LCase(p.Name) = propname Then
                getProperty = p.Value
                found = True
                Exit For
            End If
        Next ' p
    
        ' scan for customised properties of the named value
        If found Then GoTo ret
        For Each p In Application.ActivePresentation.CustomDocumentProperties
            If LCase(p.Name) = propname Then
                getProperty = p.Value
                found = True
                Exit For
            End If
        Next ' p
    ret:
    End Function
    
    5
    отвечен P.Boothroyd 2023-04-19 09:35

    обходной путь заключается в использовании пользовательских свойств, которые вы можете легко "перейти к" (нет необходимости пробираться через слайды).

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

    1. выберите фигуру или текст, который вы хотите установить закладку.
    2. Выберите Файл | Свойства... и активировать вкладку Custom.
    3. введите имя закладки.
    4. отметьте 'ссылка на контент'. Значение, указанное в соседнем выпадающий список, когда вы отмечаете "ссылка на контент", является ссылкой на ваш выбор.
    5. Нажмите Кнопку Добавить.
    6. Нажмите кнопку ОК, чтобы закрыть диалоговое окно свойств.

    теперь, когда вы создали закладку, вы можете перейти к ней следующим образом:

    1. Выберите Изменить / Перейти Свойство...

    2. Щелкните имя свойства в диалоговом окне (это имя, которое вы дали закладок).

    3. Нажмите кнопку Перейти к.

    диалоговое окно "перейти к" представляет вам список закладок, которые вы можете дважды щелкнуть, и переходит к вашим любимым текстовым полям, готовым к редактированию / вставке.

    1
    отвечен thenonhacker 2023-04-19 11:52

    самый простой способ сделать это в Powerpoint (по крайней мере, для значений, которые будут отображаться на каждом слайде), чтобы редактировать мастер слайдов. Поместите туда имя автора.

    (возможная причина, по которой Word позволяет вам, и ни одна из других, заключается в том, что различные команды в Microsoft редко разговаривают друг с другом...)

    1
    отвечен Tor Iver Wilhelmsen 2023-04-19 14:09

    Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

    Ваш ответ

    Опубликуйте как Гость или авторизуйтесь

    Имя
    Вверх