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

75229
Rabarberski

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

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

25

4 ответа на вопрос

17
Mehper C. Palavuzlar

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

http://groups.google.com/group/microsoft.public.word.vba.customization/browse_thread/thread/6fea8ffbb5027f86/a227e9b60f5bfe0e?lnk=raot Dave Jarvis 12 лет назад 0
5
P.Boothroyd

Just wrote a subroutine to put named properties into tagged text objects on all slides.

To put a file property onto slide(s). Create a textbox to hold the string. In the properties/Alt Text put the property name into square brackets.

Then execute the macro updateProperties().

i.e. [title] - would allow the document title to be updated on multiple

Two special tags have been written:

  • [copyright] would insert a copyright string, i.e. © 1998-2013 P.Boothroyd, NIS Oskemen
  • [page] would insert the slide number from the editor tab
  • ' 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 
    1
    thenonhacker

    Обходной путь - использовать настраиваемые свойства, которые вы можете легко «Перейти» (не нужно просматривать слайды).

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

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

    Теперь, когда вы создали закладку, вы можете перейти к ней следующим образом:
    1. Выберите Edit | Перейти к свойству ...
    2. Щелкните имя свойства в диалоговом окне (это имя, которое вы дали закладке).
    3. Нажмите Перейти.

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

    1
    Tor Iver Wilhelmsen

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

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

    Смотрите второй абзац в моем вопросе: «... даже если вы используете разные главные страницы ...» Rabarberski 11 лет назад 1