VBA Rechteck per Namen anwählen und Größe ändern

Moderator: ModerationP

VBA Rechteck per Namen anwählen und Größe ändern

Beitragvon xSodax » 02. Dez 2020, 00:10

Hallo liebes Forum,

nachdem ich herausgefunden habe, dass man in PPT auch VBA verwenden kann, habe ich angefangen meine Routinearbeiten zu automatisieren. Aber leider scheitere ich bei PPT an dessen VBA-Befehlen/-Syntax.

Ich habe in meinem Masterlayout ein Rechteck, dem ich das Label "Säule8" gegeben habe.

Ich würde nun gerne dieses Rechteck mit dem Namen ansprechen (wie bei den Textfeldern) und bspw. die Höhe und Länge verändern.
Ein neues Rechteck anlegen, habe ich rausgefunden, aber ein bestehendes anzuwählen und zu modifizieren ncoh nicht. Könnt ihr mir helfen?
Und wie kann ich dem Rechteck eine andere Farbe (RGB) geben in vba?

Ach ja:
Wie lösche ich denn bspw. so ein Rechteck (Säule11) aus der Folie mit VBA? Könnt ihr mir hierzu auch den Codeschnippsel schreiben?

Herzlichen Dank im voraus.

xSodax
xSodax
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 7
Registriert: 01. Dez 2020, 16:09

Re: VBA Rechteck per Namen anwählen und Größe ändern

Beitragvon Fen » 02. Dez 2020, 09:16

Hallo,

auch PPT bietet "Intellisence" an sofern man die Objekte dimensioniert, also

Code: Alles auswählen
dim PP as presentation
dim SL as slide


Es ist risiko-ärmer nur den englischen Zeichensatz zu verwenden.

Wenn du eine einiermaßen ausgereifte Vorlage hast, könntest Du sie hier oder im Excel-Forum als pptx, also ohne VBA, hochladen. Deinen VBA-Codes kannst Du im Code-Fenster zeigen

mfg
Fen
 

Re: VBA Rechteck per Namen anwählen und Größe ändern

Beitragvon DerHoepp » 02. Dez 2020, 11:01

Moin nochmal,

wie erwähnt, du kannst den Namen eines Shape-Objekts in Powerpoint nicht über die grafische Benutzeroberfläche ändern, das geht nur per Code durch ändern der .Name-Eigenschaft. Deswegen kannst du eine "Säule8" auch nur dann finden, wenn du diese vorher in VBA so benannt hast. Gehe ich recht in der Annahme, dass du momentan "nur" Säule8 als Text in ein Shape-Objekt geschrieben hast? Dann könntest du über alle Shape-Objekte eines Slide-Objekts schleifen und den jeweiligen Namen (den du aus der .Text()-Eigenschaft des .TextRange-Objekts des zum Shape gehörenden TextFrame2-Objekts ausliest) für das Shape-Objekt setzen (über die .Shapes()-Auflistung).

Eine RGB-Farbe kannst du über die .RGB-Eigenschaft des .ForeColor-Objekts des .Fill-Objekts eines Shape-Objekts festsetzen. Die Eigenschaft erwartet einen Long-Wert, den du mit der RGB()-Function aus einzelnen Bytewerten für Rot, Grün und Blau erzeugen kannst.

Löschen lassen sich Shapes überraschenderweise über die .Delete-Methode des Shape-Objekts. Wenn du das Shapeobjekt allerdings noch mal wiederverwenden willst, bietet es sich eher an, den Sichtbarkeitsstatus zu verändern (also der .Visible-Eigenschaft einen False-Wert zuzuweisen).

Um dich in das Arbeiten mit Powerpoint.Shapes insgesamt einzuarbeiten, kannst du dir auch den entsprechenden Eintrag in der Online-Hilfe durchlesen.

Viele Grüße erstmal!
derHöpp

[EDIT:] noch ein paar links eingefügt und korrigiert
DerHoepp
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 9734
Registriert: 14. Mai 2013, 11:08


Zurück zu PowerPoint Forum (provisorisch)

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 4 Gäste

cron