kostenloser Webspace werbefrei: lima-city


Shapes in PowerPoint speichern und laden

lima-cityForumProgrammiersprachenBasic

  1. Autor dieses Themas

    t**l

    Hallo,

    ich schreibe gerade ein Makro für mehrsprachige Präsentationen in PowerPoint. Dieses soll teilweise alle Shapes auf einer Präsentation (mit Formatierung) abspeichern, austauschen und zu beliebigem Zeitpunkt wieder einfügen.

    Das ablegen eines Shapes in einer Variablen hat funktioniert, jedoch weiß ich nicht, wie ich dieses Shape wieder auf der Seite einbinden soll. Copy und Paste aus der Variable funktioniert nicht.

    Gibt es diesbezüglich eine Möglichkeit oder einen anderen Ansatz um den Inhalt einer Folie zu sichern und wieder zu laden?
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. cbhp

    Co-Admin Kostenloser Webspace von cbhp

    cbhp hat kostenlosen Webspace.

    tiel schrieb:
    Hallo,

    Das ablegen eines Shapes in einer Variablen hat funktioniert, jedoch weiß ich nicht, wie ich dieses Shape wieder auf der Seite einbinden soll. Copy und Paste aus der Variable funktioniert nicht.



    Wie wäre es hiermit?
    Application.ActivePresentation.Slides(Index).Shapes.AddShape(Type, Left, Top, Width, Height)

    Ich denke mal, du speicherst dein Shape wie folgt:
    Dim MyShape1 As Shape
    Set MyShape1 = Application.ActivePresentation.Slides(1).Shapes(1)

    Dann sieht das Einfügen etwa so aus:
    Application.ActivePresentation.Slides(2).Shapes.AddShape MyShape1.Type, MyShape1.Left, MyShape1.Top, MyShape1.Width, MyShape1.Height


    Aber eigentlich brauchst du doch nicht das ganze Shape speichern, denn bei einer mehrsprachigen Präsentation geht es doch nur um unterschiedlichen Text, das heißt, du brauchst auch nur die verschiedenen Text-Werte speichern / auslesen von allen Elementen.
  4. Autor dieses Themas

    t**l

    Danke für die schnelle Antwort!


    Ich denke mal, du speicherst dein Shape wie folgt:
    Dim MyShape1 As Shape
    Set MyShape1 = Application.ActivePresentation.Slides(1).Shapes(1)


    Genau so mache ich das! Jedoch benutze ich einen dreidimensionalen Array.

    Mittlerweile habe ich heraus gefunden, dass es genau daran liegt. Speicher ich das Shape in einer Variablen, so funktioniert Copy und Paste.


    Aber eigentlich brauchst du doch nicht das ganze Shape speichern, denn bei einer mehrsprachigen Präsentation geht es doch nur um unterschiedlichen Text, das heißt, du brauchst auch nur die verschiedenen Text-Werte speichern / auslesen von allen Elementen.


    So einfach ist das leider nicht: Anfangs habe ich diese Überlegung auch gemacht. Aber da unterschiedliche Sprachen verwendet werden, sind auch die Texte von unterschiedlicher Länge. Hinzu kommt, dass es ja auch noch Bilder auf den Folien geben kann. Was bedeutet, dass die Shapes bei unterschiedlichen Sprachen auch unterschiedliche Größen und Positionen haben können.

    Zusätzlich besitzen aber die Shapes noch weitere Eigenschaften, die meiner Ansicht nach ebenfalls gesichert werden müssen: Hintergrundfarbe, Einrückungen, Farbe (von Anstrichen) im Text usw.

    Ich wollte eine Möglichkeit finden, wie ich dies recht einfach sichern und einfügen kann ohne jede Eigenschaft extra zu vergeben. Copy und Paste sind ja Funktionen, die das können. Nur dass die nicht aus einer Variable heraus funktionieren.


    Beitrag geändert: 16.3.2008 10:51:39 von tiel


    Beitrag geändert: 16.3.2008 13:25:14 von tiel
  5. cbhp

    Co-Admin Kostenloser Webspace von cbhp

    cbhp hat kostenlosen Webspace.

    Zunächst: Es funktioniert auch mit 3-dimensionalen Arrays:

    Beispiel mit einem 10x10x10 Felder großem Array:

    Dim MyShapes(1 To 10, 1 To 10, 1 To 10) As Shape
    Set MyShapes(1, 1, 1) = Application.ActivePresentation.Slides(1).Shapes(1)

    Application.ActivePresentation.Slides(1).Shapes.AddShape MyShapes(1, 1, 1).Type, MyShapes(1, 1, 1).Left, MyShapes(1, 1, 1).Top, MyShapes(1, 1, 1).Width, MyShapes(1, 1, 1).Height



    Es geht doch nur darum, dass der Text verschieden ist bei einer mehrsprachigen Präsentation, warum willst du dann auch Farbe, Position etc. speichern... das ändert sich doch nicht.
    Wegen der Größe muss es eben so gelöst werden, dass bereits beim Erstellen der Präsentation die Textfelder etc. immer groß genug sind.

    Alternativ könntest du, statt nur Shapes zu speichern, gleich die komplette Folie sichern.
  6. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!