| Autor |
Nachricht |
area51
Im Profil kannst Du frei den Rang ändern
Verfasst am: 03. Aug 2009, 15:57 Rufname:
|
|
| Version: Office 2007 |
|
Hallo Experten,
ich habe wieder mal ein Problem und weiss nicht mehr weiter...
also, ich versuche verlinkte shapes (Verknüpfungen) zu kopieren und diese als Bilder hinzufügen.
Hier der Code:
For Each oSlide In archivedPres.Slides
' On the current slide, get the positon, size, layer, and name
' of the image. Then delete it from the slide.
'
With oSlide
For Each oShape In .Shapes
fHt = oShape.Height
fWd = oShape.Width
fTop = oShape.Top
fLeft = oShape.Left
oShape.Cut
With .Shapes.PasteSpecial(DataType:=ppPastePNG)
.Left = fLeft
.Top = fTop
.Height = fHt
.Width = fWd
End With
Next oShape
End With
Next oSlide
Es sind 10 Shapes auf der Folie. Irgendwie löscht er aber fälschlicherweise die drei letzten eingefügten Bilder, die zugehörigen verlinkten Shapes bleiben aber drin. Komisch finde ich, dass er die vorderen verlinkten Shapes löscht und auch richtigerweise nur Bilder auf der Folie lässt. Dann geht die Schleife nicht auf die letzten Shapes ein, sondern er wiederholt das Kopieren und Einfügen von vorne bei bereits abgearbeiteten Shapes. Ich habe auch schon eine while schliefe bis zur anzahl der Shapes probiert, passiert genau das selbe. Wer kann mir da weiterhelfen?
Vielen Dank und viele Grüße
|
|
hw
Office & Programmierung

Verfasst am: 03. Aug 2009, 17:46 Rufname: Hans
|
| |
| Version: Office 2007 |
|
Du kannst nicht über die Shape-Liste iterieren, wenn DU in der Schleife Shapes.Count durch Löschen/Einfügen neuer Shapes veränderst. Wenn DU nur linked-Shapes anfassen willst, dann musst Du auch nach den linked Shapes suchen - evtl. .Type abfragen und dann agieren...
_________________ Gruß hw
DEF5 33B0 5E1C 3703 6987 2E79 C61A B05D 837E 7FE1
|
|
area51
Im Profil kannst Du frei den Rang ändern
Verfasst am: 03. Aug 2009, 19:41 Rufname:
|
|
| Version: Office 2007 |
|
Hallo,
wie gesagt, ich habe schon vieles ausprobiert. Ich habe mal die Schleife so geändert:
While (count <= numberOfShapes)
If .Shapes(count).Type = msoLinkedOLEObject Then
fHt = .Shapes(count).Height
fWd = .Shapes(count).Width
fTop = .Shapes(count).Top
fLeft = .Shapes(count).Left
.Shapes(count).Cut
With .Shapes.PasteSpecial(DataType:=ppPastePNG)
.Left = fLeft
.Top = fTop
.Height = fHt
.Width = fWd
End With
'Next oShape
End If
count = count + 1
Wend
Das Problem besteht weiterhin.
Bitte Hilfe!!!
|
|
Gast
Verfasst am: 03. Aug 2009, 19:53 Rufname:
|
|
| Version: Office 2007 |
|
Ja, natürlich!
Weil count sich ja auch ändert .cut -> count = count -1 paste -> count = count +1 - bei count+1 bist Du dann mind. 2 shapes weiter. Falls Shape.Cut darf auch kein count+1 folgen - weil cut ja schon die Liste verschiebt.
Wenn überhaupt, dann solltest Du bei shapes.Count beginnen und runter zählen.
Oder besser die Namen oder Objektpointer der betreffenden Shapes merken und die dann bearbeiten...
|
|
area51
Im Profil kannst Du frei den Rang ändern
Verfasst am: 04. Aug 2009, 08:50 Rufname:
|
| |
| Version: Office 2007 |
|
Hallo Gast,
vielen Dank an Dich. es hat mir geholfen.
ich habe auch schon früher versucht, erst einfach alle shapes zu kopieren und dachte, er fügt sie einfach hinten der reihenfolge nach ein. dann hatte ich in einer separaten schleife versucht, die vorderen (originalen, verlinkten) shapes zu löschen... keine ahnung, mir schien so, als ob er sie vielleicht nach ids oder so und nicht der reihenfolge nach einfügt.
Danke noch mal.
|
|
Du kannst Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen. Du kannst Dateien in diesem Forum nicht posten Du kannst Dateien in diesem Forum herunterladen
|
| |

|
|
| Verwandte Themen |
| Forum / Themen |
Antworten |
Autor |
Aufrufe |
Letzter Beitrag |
 |
Powerpoint Präsentationen: Eigene Symbolleiste für Größe und Position von Shapes |
1 |
wuz |
105 |
13. Jun 2010, 00:32 Ute-S  |
 |
Powerpoint Präsentationen: Alle Shapes des gleichen Typs markieren |
3 |
lullaby |
103 |
16. Mai 2010, 16:15 Ute-S  |
 |
PowerPoint VBA (Makros): alle shapes auf aktueller folie markieren |
1 |
lullaby |
277 |
12. Mai 2010, 12:11 lullaby  |
 |
PowerPoint VBA (Makros): Shapes bei Selektion automatisch färben (Fehler?!) |
10 |
myfriend.harvey |
475 |
10. März 2010, 19:26 myfriend.harvey  |
 |
PowerPoint VBA (Makros): Powerpoint Shapes mit Excel-VBA (um-)benennen |
6 |
CKBen |
2169 |
15. Apr 2009, 08:31 CKBen  |
 |
PowerPoint VBA (Makros): Events abfangen von Shapes Größenänderungen |
1 |
MagicMicha |
240 |
13. März 2009, 15:48 hw  |
 |
PowerPoint VBA (Makros): shapes durch optionbutton in zweite folie kopieren |
9 |
alli2000 |
1123 |
19. Aug 2008, 20:32 Bamberg  |
 |
PowerPoint VBA (Makros): laufvariable in Shapes("Text Box 3") |
1 |
benutzername |
1159 |
25. Jun 2008, 15:09 Cyril Sneer  |
 |
PowerPoint VBA (Makros): Problem beim Kopieren und Zentrieren von Shapes |
2 |
wasabi |
1064 |
15. Apr 2008, 07:33 Gast  |
 |
PowerPoint VBA (Makros): Shapes mit Userform bennen und Farbe aus Excel vorgeben |
5 |
Bernd_xx |
3115 |
02. März 2008, 22:08 hw  |
 |
PowerPoint VBA (Makros): Skalierung eines Shapes feststellen / auslesen |
0 |
wasabi |
558 |
14. Feb 2008, 12:12 wasabi  |
 |
PowerPoint VBA (Makros): Shapes löschen wenn Position bekannt |
2 |
RippleN |
1383 |
22. Jan 2008, 14:38 hw  |
| |
|