Powerpoint: comment insérer la propriété du document (aka 'field') dans la diapositive?

Comment puis-je insérer une propriété de document (par exemple, le nom de l'auteur) dans une diapositive dans PowerPoint 2007? Je sais que cela peut être fait dans Microsoft Word, mais je ne peux pas trouver comment le faire dans PowerPoint.

(L'idée est que, avec une propriété de document, il est facile de modifier, par exemple, le contenu du pied de page dans toutes les diapositives, même si vous utilisez différentes pages principales. S'il y a une solution différente, cela ira bien aussi.)

Alors que Word peut le faire, PowerPoint ne peut pas. AFAIK, vous pouvez avoir des propriétés de document dans PPT, mais vous ne pouvez pas les insérer sur une diapositive. Le seul champ de mise à jour disponible pour PowerPoint est le numéro de date et de diapositive. Quoi qu'il en soit, il pourrait y avoir une solution de contournement dans VBA pour y parvenir. Vous pouvez demander ceci sur Stackoverflow pour prendre votre chance.

Il suffit d'écrire un sous-programme pour mettre les propriétés nommées dans des objets de texte marqués sur toutes les diapositives.

Pour mettre une propriété de fichier sur la (les) diapositive (s). Créez une zone de texte pour contenir la chaîne. Dans les propriétés / Alt Texte, placez le nom de la propriété en crochets.

Ensuite, exécutez la macro updateProperties() .

C'est-à-dire [title] – permettrait de mettre à jour le titre du document sur plusieurs

Deux étiquettes spéciales ont été écrites:

  • [copyright] insère une chaîne de droit d'auteur, c.-à-d. © 1998-2013 P.Boothroyd, NIS Oskemen
  • [page] insère le numéro de la diapositive à partir de l'onglet Éditeur
  •  'Copier les propriétés du document dans toutes les diapositives
     '(C) 2013, P.Boothroyd pour NIS Oskemen
     Dim processPage As Slide
    
     Sub updateProperties ()
         Dim page As Slide
         Dim propname As String
         'Analyse toutes les diapositives dans la présentation active (document)
         Pour chaque page de processus dans Application.ActivePresentation.Slides
             'Scannez tous les éléments de la page pour la zone de texte avec le champ "altText / title" marqué avec "["
             Pour chaque objet dans processPage.Shapes
                 Si à gauche (obj.Title, 1) = "[" Then
                     Dim sStart, sEnd As Integer
                     'Extraire la propriété entre crochets
                     SStart = 2
                     SEnd = InStr (2, obj.Title, "]")
                     Propname = Trim (Mid (obj.Title, sStart, sEnd - 2))
                     Si obj.Type = msoTextBox Then
                         'Définir la zone de texte à la valeur demandée
                         Obj.TextFrame.TextRange.Text = getProperty (propname, obj.TextFrame.TextRange.Text)
                     Fin si
                 Fin si
             Suivant 'obj
         Page suivante
     End Sub
    
     'Obtenir la propriété du document nommé (avec option par défaut)
     Fonction getProperty (propname, optionnel Def As String) As String
         'Propriété affectée de la valeur par défaut
         GetProperty = def
         Dim trouvé comme booléen
         Trouvé = faux
         Propname = LCase (propname)
    
         Le copyright est une propriété générée
         Si propname = "copyright" Ensuite
             Dim author As String
             Dim company As String
             Dim YearFrom As String
             Dim yearTo As String
    
             «Obtenir toutes les variables appropriées
             Author = getProperty ("auteur", "")
             Company = getProperty ("entreprise", "")
             YearFrom = getProperty ("créé", "")
             YearTo = Format (Now (), "AAAA")
    
             'Insérer un symbole de copyright
             GetProperty = Chr (169) + ""
    
             'Accorder une période d'annulation pour avis de copyright
             Si l'année de l'année à la fin
                 GetProperty = getProperty + yearFrom + "-"
             Fin si
             GetProperty = getProperty + yearTo
    
             'Ajouter l'auteur
             GetProperty = getProperty + "" + auteur
    
             'Ajouter séparateur pour auteur / entreprise si tous les deux existent
             Si Len (auteur)> 0 Et Len (entreprise)> 0 Alors
                 GetProperty = getProperty & ","
             Fin si
             GetProperty = getProperty & company
    
             'Traité, alors retournez la valeur
             Trouvé = vrai
         Fin si
    
         'Insérez le numéro de la diapositive dans le document
         Si propname = "page" Ensuite
             GetProperty = processPage.SlideNumber
             Trouvé = vrai
         Fin si
    
         'Si le nom généré créé renvoie la valeur
         Si trouvé, alors GoTo ret
    
         'Recherche de propriétés MS (fichier) standard de la valeur nommée
         Pour chaque p dans Application.ActivePresentation.BuiltInDocumentProperties
             Si LCase (p.Name) = propname Then
                 GetProperty = p.Value
                 Trouvé = vrai
                 Sortie pour
             Fin si
         Suivant 'p
    
         'Recherche de propriétés personnalisées de la valeur nommée
         Si trouvé, alors GoTo ret
         Pour chaque p dans Application.ActivePresentation.CustomDocumentProperties
             Si LCase (p.Name) = propname Then
                 GetProperty = p.Value
                 Trouvé = vrai
                 Sortie pour
             Fin si
         Suivant 'p
     Ret:
     Fonction de fin
    

    La manière la plus simple de le faire dans Powerpoint (au moins pour les valeurs qui apparaîtront sur chaque diapositive) est de modifier le maître de la diapositive. Mettez le nom de l'auteur là-bas.

    (Une raison possible pour laquelle Word vous permet, et aucun d'autre part, est que les différentes équipes de Microsoft se parlent rarement …)

    Une solution de contournement consiste à utiliser des propriétés personnalisées que vous pouvez facilement "Aller à" (pas besoin de parcourir les diapositives).

    À partir de http://msdn.itags.org/powerpoint/4426/ :

    1. Sélectionnez la forme ou le texte sur lequel vous souhaitez définir un marque-page.
    2. Sélectionnez Fichier | Propriétés … et activez l'onglet personnalisé.
    3. Tapez un nom pour le signet.
    4. Cochez 'Lien vers le contenu'. La valeur répertoriée dans la zone déroulante adjacente lorsque vous cochez 'Lien vers le contenu' est une référence à votre sélection.
    5. Cliquez sur Ajouter.
    6. Cliquez sur OK pour fermer la boîte de dialogue Propriétés.

    Maintenant que vous avez créé un marque-page, vous pouvez y accéder comme suit:
    1. Sélectionnez Modifier | Goto Property …
    2. Cliquez sur le nom de la propriété dans la boîte de dialogue (c'est le nom que vous avez donné au signet).
    3. Cliquez sur Aller vers.

    La boîte de dialogue "Aller vers" vous présente une liste de signets que vous pouvez double-cliquer, et vous accédez à vos champs de texte préférés, prêts à être édités / collés.