Hallo zusammen,
könntet Ihr mir wieder mal bei einer Aufgabe helfen?
Ich möchte aus allen Tabellenblättern von jeweils allen platzierten Shapes und Commandbuttons sämtliche Properties auslesen und in ein neu eingefügtes Tabellenblatt schreiben.
Also etwa in der Form:
ShapePropertiesAll
Zellen mit Füllfarbe automatisch werden nicht dargestellt
Wenn jetzt ein Commandbutton behandelt wird, werden zwar die Koordinaten ausgelesen aber dann kommt bei "TextFrame2.MarginLeft" usw. natürlich eine Fehlermeldung.
Bei Shapes funktioniert das aber hier nicht.
Wie kann ich a) den Fehler umgehen und b) auslesen welcher Text auf dem Button steht?
Schön wäre auch den Text von den allen Shapes auszulesen zu können.
Habt Ihr mir da ev. einen Lösungsvorschlag?
könntet Ihr mir wieder mal bei einer Aufgabe helfen?
Ich möchte aus allen Tabellenblättern von jeweils allen platzierten Shapes und Commandbuttons sämtliche Properties auslesen und in ein neu eingefügtes Tabellenblatt schreiben.
Also etwa in der Form:
ShapePropertiesAll
A | B | C | D | E | F | G | H | I | |
1 | Shape Name | Shape Type | Height | Width | Left | Top | MarginLeft | MarginRight | Sheet Name |
2 | Rechtwinkliges Dreieck 1 | Rechtwinkliges Dreieck 1 | 50 | 50 | 25 | 10 | 2,83464574813843 | 2,83464574813843 | Contents |
3 | Rounded Rectangle 1_ContentButton | Rounded Rectangle 1_ContentButton | 20 | 60 | 200 | 4 | 7,19999980926514 | 7,19999980926514 | Test |
4 | Rounded Rectangle 1_ContentButton | Rounded Rectangle 1_ContentButton | 20 | 60 | 200 | 4 | 7,19999980926514 | 7,19999980926514 | Rechnung |
5 | Rounded Rectangle 1_ContentButton | Rounded Rectangle 1_ContentButton | 20 | 60 | 200 | 4 | 7,19999980926514 | 7,19999980926514 | Erich |
6 | Rounded Rectangle 1_ContentButton | Rounded Rectangle 1_ContentButton | 20 | 60 | 200 | 4 | 7,19999980926514 | 7,19999980926514 | Global |
7 | Rounded Rectangle 1_ContentButton | Rounded Rectangle 1_ContentButton | 20 | 60 | 200 | 4 | 7,19999980926514 | 7,19999980926514 | Tabelle5 |
8 | Rounded Rectangle 1_ContentButton | Rounded Rectangle 1_ContentButton | 20 | 60 | 200 | 4 | 7,19999980926514 | 7,19999980926514 | Hans |
9 | Rounded Rectangle 1_ContentButton | Rounded Rectangle 1_ContentButton | 20 | 60 | 200 | 4 | 7,19999980926514 | 7,19999980926514 | Tabelle9 |
10 | CommandButton1 | CommandButton1 | 38,25 | 169,5 | 60 | 38,25 |
Füllfarben und Muster | ||||||
Zelle | Rot | Grün | Blau | Color | Muster | Farbe |
A1:I1 | 255 | 255 | 0 | 65535 |
Code:
'Add headings for our lists. Expand as needed
WsNew.Range("A1:I1") = Array("Shape Name", "Shape Type", "Height", "Width", "Left", "Top", "MarginLeft", "MarginRight", "Sheet Name")
'Loop through all Worksheet
For Each wsLoop In Worksheets
'Loop through all shapes on Worksheet
For Each sShapes In wsLoop.Shapes
'Increment Variable lLoop for row numbers[img]file:///I:/User/Downloads/Unbenannt.JPG.html[/img]
lLoop = lLoop + 1
With sShapes
'Add shape properties
WsNew.Cells(lLoop + 1, 1) = .Name
WsNew.Cells(lLoop + 1, 2) = .OLEFormat.Object.Name
WsNew.Cells(lLoop + 1, 3) = .Height
WsNew.Cells(lLoop + 1, 4) = .Width
WsNew.Cells(lLoop + 1, 5) = .Left
WsNew.Cells(lLoop + 1, 6) = .Top
'Follow the same pattern for more
WsNew.Cells(lLoop + 1, 7) = .TextFrame2.MarginLeft
WsNew.Cells(lLoop + 1, 8) = .TextFrame2.MarginRight
WsNew.Cells(lLoop + 1, 9) = wsLoop.Name
End With
Next sShapes
Next wsLoop
'AutoFit Columns.
WsNew.Columns.AutoFit
Wenn jetzt ein Commandbutton behandelt wird, werden zwar die Koordinaten ausgelesen aber dann kommt bei "TextFrame2.MarginLeft" usw. natürlich eine Fehlermeldung.
Bei Shapes funktioniert das aber hier nicht.
Wie kann ich a) den Fehler umgehen und b) auslesen welcher Text auf dem Button steht?
Schön wäre auch den Text von den allen Shapes auszulesen zu können.
Habt Ihr mir da ev. einen Lösungsvorschlag?