Utiliser des balises personnalisées pour les présentations, les diapositives et les formes dans PowerPoint
Un complément peut attacher des métadonnées personnalisées, sous la forme de paires clé-valeur, appelées « balises », à des présentations, des diapositives spécifiques et des formes spécifiques sur une diapositive.
Il existe deux scénarios principaux pour l’utilisation des balises :
- Lorsqu’elle est appliquée à une diapositive ou à une forme, une balise permet à l’objet d’être classé pour le traitement par lots. Par exemple, supposons qu’une présentation comporte des diapositives qui doivent être incluses dans les présentations dans la région Est, mais pas dans la région Ouest. De même, il existe d’autres diapositives qui doivent être affichées uniquement vers l’Ouest. Votre complément peut créer une balise avec la clé
REGION
et la valeurEast
et l’appliquer aux diapositives qui doivent être utilisées uniquement dans l’Est. La valeur de la balise est définie surWest
pour les diapositives qui doivent être affichées uniquement dans la région Ouest. Juste avant une présentation vers l’Est, un bouton dans le complément exécute le code qui effectue une boucle dans toutes les diapositives vérifiant la valeur de laREGION
balise. Les diapositives où se trouveWest
la région sont supprimées. L’utilisateur ferme ensuite le complément et démarre le diaporama. - Lorsqu’elle est appliquée à une présentation, une balise est en fait une propriété personnalisée dans le document de présentation (similaire à une propriété CustomProperty dans Word).
Étiqueter des diapositives et des formes
Une balise est une paire clé-valeur, où la valeur est toujours de type string
et est représentée par un objet Tag . Chaque type d’objet parent, tel qu’un objet Presentation, Slide ou Shape , a une tags
propriété de type TagsCollection.
Ajouter, mettre à jour et supprimer des balises
Pour ajouter une balise à un objet, appelez la méthode TagCollection.add de la propriété de l’objet tags
parent. Le code suivant ajoute deux balises à la première diapositive d’une présentation. Tenez compte du code suivant :
- Le premier paramètre de la
add
méthode est la clé dans la paire clé-valeur. - Le deuxième paramètre est la valeur .
- La clé est en majuscules. Cela n’est pas strictement obligatoire pour la
add
méthode ; toutefois, la clé est toujours stockée par PowerPoint en majuscules, et certaines méthodes liées aux balises nécessitent que la clé soit exprimée en majuscules. Nous vous recommandons donc de toujours utiliser des majuscules dans votre code pour une clé de balise.
async function addMultipleSlideTags() {
await PowerPoint.run(async function(context) {
const slide = context.presentation.slides.getItemAt(0);
slide.tags.add("OCEAN", "Arctic");
slide.tags.add("PLANET", "Jupiter");
await context.sync();
});
}
La add
méthode est également utilisée pour mettre à jour une balise. Le code suivant modifie la valeur de la PLANET
balise.
async function updateTag() {
await PowerPoint.run(async function(context) {
const slide = context.presentation.slides.getItemAt(0);
slide.tags.add("PLANET", "Mars");
await context.sync();
});
}
Pour supprimer une balise, appelez la delete
méthode sur son objet parent TagsCollection
et passez la clé de la balise en tant que paramètre . Pour obtenir un exemple, consultez Définir des métadonnées personnalisées sur la présentation.
Utiliser des étiquettes pour traiter de manière sélective les diapositives et les formes
Considérez le scénario suivant : Contoso Consulting présente une présentation à tous les nouveaux clients. Toutefois, certaines diapositives ne doivent être affichées que pour les clients qui ont payé le statut « Premium ». Avant d’afficher la présentation aux clients non Premium, ils en font une copie et suppriment les diapositives que seuls les clients Premium doivent voir. Un complément permet à Contoso d’étiqueter les diapositives destinées aux clients Premium et de supprimer ces diapositives si nécessaire. La liste suivante décrit les principales étapes de codage pour créer cette fonctionnalité.
Créez une fonction qui marque la diapositive actuellement sélectionnée comme destinée aux
Premium
clients. Tenez compte du code suivant :- La
getSelectedSlideIndex
fonction est définie à l’étape suivante. Elle retourne l’index de base 1 de la diapositive actuellement sélectionnée. - La valeur retournée par la
getSelectedSlideIndex
fonction doit être décrémentée, car la méthode SlideCollection.getItemAt est basée sur 0.
async function addTagToSelectedSlide() { await PowerPoint.run(async function(context) { let selectedSlideIndex = await getSelectedSlideIndex(); selectedSlideIndex = selectedSlideIndex - 1; const slide = context.presentation.slides.getItemAt(selectedSlideIndex); slide.tags.add("CUSTOMER_TYPE", "Premium"); await context.sync(); }); }
- La
Le code suivant crée une méthode pour obtenir l’index de la diapositive sélectionnée. Tenez compte du code suivant :
- Il utilise la méthode Office.context.document.getSelectedDataAsync des API JavaScript courantes.
- L’appel à
getSelectedDataAsync
est incorporé dans une fonction de retour de promesse. Pour plus d’informations sur la raison et la façon de procéder, consultez Wrapper les API courantes dans les fonctions de retour de promesse. getSelectedDataAsync
retourne un tableau, car plusieurs diapositives peuvent être sélectionnées. Dans ce scénario, l’utilisateur n’en a sélectionné qu’une seule, de sorte que le code obtient la première (0e) diapositive, qui est la seule sélectionnée.- La
index
valeur de la diapositive est la valeur de base 1 que l’utilisateur voit à côté de la diapositive dans le volet Miniatures de l’interface utilisateur PowerPoint.
function getSelectedSlideIndex() { return new OfficeExtension.Promise<number>(function(resolve, reject) { Office.context.document.getSelectedDataAsync(Office.CoercionType.SlideRange, function(asyncResult) { try { if (asyncResult.status === Office.AsyncResultStatus.Failed) { reject(console.error(asyncResult.error.message)); } else { resolve(asyncResult.value.slides[0].index); } } catch (error) { reject(console.log(error)); } }); }); }
Le code suivant crée une fonction pour supprimer les diapositives étiquetées pour les clients Premium. Tenez compte du code suivant :
- Étant donné que les
key
propriétés etvalue
des balises vont être lues après lecontext.sync
, elles doivent être chargées en premier.
async function deleteSlidesByAudience() { await PowerPoint.run(async function(context) { const slides = context.presentation.slides; slides.load("tags/key, tags/value"); await context.sync(); for (let i = 0; i < slides.items.length; i++) { let currentSlide = slides.items[i]; for (let j = 0; j < currentSlide.tags.items.length; j++) { let currentTag = currentSlide.tags.items[j]; if (currentTag.key === "CUSTOMER_TYPE" && currentTag.value === "Premium") { currentSlide.delete(); } } } await context.sync(); }); }
- Étant donné que les
Définir des métadonnées personnalisées sur la présentation
Les compléments peuvent également appliquer des balises à la présentation dans son ensemble. Cela vous permet d’utiliser des balises pour les métadonnées au niveau du document, comme la classe CustomPropertyest utilisée dans Word. Mais contrairement à la classe Word CustomProperty
, la valeur d’une balise PowerPoint ne peut être que de type string
.
Le code suivant est un exemple d’ajout d’une balise à une présentation.
async function addPresentationTag() {
await PowerPoint.run(async function (context) {
let presentationTags = context.presentation.tags;
presentationTags.add("SECURITY", "Internal-Audience-Only");
await context.sync();
});
}
Le code suivant est un exemple de suppression d’une balise d’une présentation. Notez que la clé de la balise est passée à la delete
méthode de l’objet parent TagsCollection
.
async function deletePresentationTag() {
await PowerPoint.run(async function (context) {
let presentationTags = context.presentation.tags;
presentationTags.delete("SECURITY");
await context.sync();
});
}