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


30

Як я можу вставити властивість документа (наприклад, ім'я автора) у слайд у PowerPoint 2007? Я знаю, що це можна зробити в Microsoft Word, але я не можу знайти, як це зробити в PowerPoint.

(Ідея полягає в тому, що за допомогою властивості документа легко змінити, наприклад, вміст нижнього колонтитула у всіх слайдах, навіть якщо ви використовуєте різні головні сторінки. Якщо є інше рішення, це було б добре.)

Відповіді:


19

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



6

Просто написав підпрограму для розміщення названих властивостей у теги текстових об'єктів на всіх слайдах.

Щоб розмістити властивість файлу на слайдах. Створіть текстове поле для утримання рядка. У властивостях / Alt Text помістіть ім'я властивості у квадратні дужки.

Потім виконайте макрос updateProperties().

тобто [title]- дозволить оновлювати назву документа кілька разів

Написано два спеціальні теги:

  • [copyright]буде вставлено рядок авторських прав, тобто © 1998-2013 P.Boothroyd, NIS Oskemen
  • [page] буде вставити номер слайда на вкладці редактора
  • 'Скопіюйте властивості документа на всі слайди
    '(с) 2013 р., П.Бітуройд для НІС Оскемен
    Темний процес сторінки на слайді
    
    Sub updateProperties ()
        Затемнення сторінки як слайд
        Prop Dim prop prop prop prop
        'розібрати всі слайди в активній презентації (документ)
        Для кожного процесуPage In Application.ActivePresentation.Slides
            'сканувати всі елементи сторінки на текстове поле з позначкою поля "altText / title" за допомогою "["
            Для кожного Obj In processPage.Shapes
                Якщо ліворуч (obj.Title, 1) = "[" Тоді
                    Dim sStart, sEnd As Integer
                    'вилучити властивість з квадратних дужок
                    sStart = 2
                    sEnd = InStr (2, obj.Title, "]")
                    propname = Обрізати (середній (obj.Title, sStart, sEnd - 2))
                    Якщо obj.Type = msoTextBox Тоді
                        'встановіть текстове поле на потрібне значення
                        obj.TextFrame.TextRange.Text = getProperty (ім'я користувача, obj.TextFrame.TextRange.Text)
                    Кінець Якщо
                Кінець Якщо
            Далі 'obj
        Наступна сторінка
    Кінець Під
    
    'отримати властивість іменованого документа (з необов'язковим замовчуванням)
    Функція getProperty (ім'я користувача, необов'язково визначити як рядок) як рядок
        'властивість призначила значення за замовчуванням
        getProperty = def
        Дім знайшов як булевий
        знайдено = Неправдиво
        propname = LCase (ім'я)
    
        "авторські права - це створена власність
        Якщо propname = "авторське право", то
            Тьмяний автор як струна
            Дім компанії As String
            Тьмяний рік від струни
            Тьмяний рік, як струна
    
            'отримати всі відповідні змінні
            author = getProperty ("автор", "")
            company = getProperty ("компанія", "")
            yearFrom = getProperty ("створено", "")
            yearTo = Формат (Now (), "YYYY")
    
            'вставити символ авторського права
            getProperty = Chr (169) + ""
    
            'прикріпити проміжок року для повідомлення про авторські права
            Якщо рікЗ року доТо тоді
                getProperty = getProperty + yearFrom + "-"
            Кінець Якщо
            getProperty = getProperty + рікTo
    
            ', додайте автор
            getProperty = getProperty + "" + автор
    
            'додати роздільник для автора / компанії, якщо вони існують
            Якщо Лен (автор)> 0 І Лен (компанія)> 0 Тоді
                getProperty = getProperty & ","
            Кінець Якщо
            getProperty = getProperty & компанія
    
            'оброблено, тому поверніть значення
            знайдено = Правда
        Кінець Якщо
    
        'вставити номер документа в слайд
        Якщо propname = "сторінка" Тоді
            getProperty = processPage.SlideNumber
            знайдено = Правда
        Кінець Якщо
    
        'якщо створене ім'я створено, повертає значення
        Якщо його знайдено, тоді GoTo повернеться
    
        'сканування стандартних властивостей MS (файлу) вказаного значення
        Для кожного p у програмі Application.ActivePresentation.BuiltInDocumentProperties
            Якщо LCase (p.Name) = ім'я тоді
                getProperty = p.Value
                знайдено = Правда
                Вихід для
            Кінець Якщо
        Далі 'стор
    
        'сканувати спеціальні властивості вказаного значення
        Якщо його знайдено, тоді GoTo повернеться
        Для кожного p у програмі Application.ActivePresentation.CustomDocumentProperties
            Якщо LCase (p.Name) = ім'я тоді
                getProperty = p.Value
                знайдено = Правда
                Вихід для
            Кінець Якщо
        Далі 'стор
    ret:
    Кінцева функція
    

    1

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

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

    1. Виберіть форму або текст, на який потрібно встановити закладку.
    2. Виберіть Файл | Властивості ... та активуйте вкладку Спеціальні.
    3. Введіть ім’я для закладок.
    4. Поставте позначку "Посилання на вміст". Значення, вказане в сусідньому спадному вікні, коли ви поставите галочку "Посилання на вміст", є посиланням на ваш вибір.
    5. Натисніть кнопку Додати.
    6. Клацніть OK, щоб закрити діалогове вікно властивостей.

    Тепер, коли ви створили закладку, ви можете перейти до неї наступним чином:
    1. Виберіть Правка | Перейдіть до Властивості ...
    2. Клацніть ім'я власності у діалоговому вікні (це ім’я, яке ви надали закладці).
    3. Клацніть Перейти до.

    Діалогове вікно "Перейти" представляє список закладок, на які можна двічі клацнути, і переходить до улюблених текстових полів, готових до редагування / вставки.


    1

    Найпростіший спосіб зробити це в Powerpoint (принаймні для значень, які з’являться на кожному слайді) - це редагувати слайдер. Поставте туди ім’я автора.

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


    1
    Дивіться другий абзац у моєму запитанні: "... навіть якщо ви використовуєте різні головні сторінки ..."
    Рабарберський,

    0

    Оновлення для коду обробки за допомогою ppt 2019: я трохи змінив функцію for next для звичайної, тому що передньому користувачеві легше змінити "альтернативний текст" правою кнопкою миші:

        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
    
    Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
    Licensed under cc by-sa 3.0 with attribution required.