Snippet-Parameter (@param snippet)

Erstellt: 2026-07-11 · Aktualisiert: 2026-07-11

Mit dem Parametertyp snippet öffnet der Parameter-Dialog einen Snippet-Picker: eine durchsuchbare Auswahl bestehender Snippets mit Vorschaubild. Das Script bekommt eine Referenz auf das gewählte Snippet und kann es einfügen — typischer Einsatz: ein bestehendes Kundenlogo per Name suchen und ein vorhandenes Shape damit ersetzen.

Bild-Snippets als Bausteine

Am nützlichsten ist @param snippet mit Fragment- oder Picture-Snippets (fertige Objekte wie Logos, Icons, Signaturen). Mit subtype= lässt sich der Picker darauf einschränken.


Syntax

// @param snippet <name> "<Label>" [subtype="Fragment|Picture|Code"] [category="…"] [tooltip="…"]
  • subtype — schränkt die Auswahl auf einen Snippet-Typ ein (Fragment, Picture oder Code). Leer = alle.
  • category — schränkt auf eine Kategorie ein (z. B. category="Logos"). Leer = alle.
  • default — optional die Id eines Snippets, das beim Öffnen vorausgewählt ist.
  • Im Script liefert Params.GetSnippet("<name>") eine SnippetRef mit den Eigenschaften Id, Name, TechnicalName, SnippetType, PreviewPath — oder null, wenn nichts gewählt wurde.

Snippet einfügen

ppptools.InsertSnippet(ref) fügt das gewählte Fragment/Picture-Snippet auf der aktuellen Folie ein und gibt das eingefügte Shape (bei mehreren Objekten die Gruppe) zurück:

// @param snippet Logo "Kundenlogo" subtype="Fragment" category="Logos" tooltip="Logo aus der Bibliothek wählen"
// @button Einfügen

var logo = Params.GetSnippet("Logo");
if (logo != null)
{
    var shp = ppptools.InsertSnippet(logo);
    ppptools.CenterOnSlide(shp);
}

Bestehendes Shape ersetzen (Logo tauschen)

Der Kern-Use-Case: ein selektiertes Shape (z. B. das alte Logo) durch das gewählte Snippet ersetzen. ppptools.ReplaceShape(target, ref, scale, keepName) platziert das neue Objekt am Zentrum des Originals, skaliert es und löscht das Original.

// @param snippet Logo  "Neues Logo"     subtype="Fragment" category="Logos"
// @param enum    Scale "Skalieren nach" options="Breite|Höhe|Einpassen|Strecken|Original" default="Breite"
// @param bool    Keep  "Namen beibehalten" default="true"
// @button Ersetzen

var logo   = Params.GetSnippet("Logo");
var target = ppptools.GetSelected();          // das zu ersetzende Shape

if (logo != null && target != null)
    ppptools.ReplaceShape(target, logo,
        scale:    Params.GetString("Scale"),
        keepName: Params.GetBool("Keep"));

Skalier-Optionen:

Wert Wirkung
Breite Ersatz auf die Breite des Originals, Seitenverhältnis erhalten
Höhe Ersatz auf die Höhe des Originals, Seitenverhältnis erhalten
Einpassen in die Box des Originals einpassen (grösstmöglich, Ratio erhalten)
Strecken exakt auf Breite und Höhe des Originals (Ratio wird verzerrt)
Original Grösse des Snippets unverändert lassen

Bei Namen beibehalten übernimmt das neue Objekt den Namen des Originals — praktisch, wenn das Logo einen technischen Namen wie Kundenlogo trägt und später erneut per Name gefunden/ersetzt werden soll.

Alle gleichnamigen ersetzen

Um jedes Vorkommen über alle Folien zu tauschen, per ppptools.GetSlide(i) / ppptools.GetAllShapes(slide) iterieren und jedes Shape mit passendem Name an ReplaceShape übergeben. Ein vollständiges, lauffähiges Snippet dazu: Beispiel: Snippet per Namen ersetzen.


Verwandte Seiten