Shapes in VBA ansprechen
21.09.2013 11:28:58
Felix
ich habe ein kleines Problem und möchte das gerne hier fix schildern.
Und zwar habe ich ein wenig mit VBA experimentiert um eine Prozesskette zu veranschaulichen. Durch anklicken der grauen Symbole werden Makros ausgelöst, die wiederum die blauen Symbole erstellen, wo sie gerade gebraucht werden. Dass Excel vielleicht nicht die Beste Wahl dafür ist und es auch bereits gute Programme dafür gibt ist da erst einmal nebensächlich.
Nun möchte ich gerne die erstellten Shapes anwählen, um einmal alle zu kopieren und einmal das letzte zu löschen.
Auf meiner Suche im Netz bin ich bereits auf einen Ansatz gestoßen, so ganz funktioniert es jedoch leider noch nicht.
Sub ShapesAnsprechen()
counter = 0
For Each bilder In ActiveSheet.Shapes
If bilder.Type = 17 Then
ReDim Preserve alle_bilder(0 To counter)
alle_bilder(counter) = bilder.Name
counter = counter + 1
End If
Next bilder
ActiveSheet.Shapes.Range(alle_bilder).Select
End Sub
Dieser Code spricht alle Felder mit der Nummerierung im rechten unteren Bereich der Flächenelemente an.Wenn ich nun die If und die End If Zeilen auskommentiere, dann sind plötzlich alle "Bilder" markiert, also sowohl die alles was blau ist (so solls sein) als auch die grauen Elemente, welche ich gerne unmarkiert lassen würde. Ich habe mir überlegt, eventuell den Shapes namen zuordnen zu können, welche einer fortlaufenden Nummerierung entsprechen um sie gezielt anwählen zu können, indem ich einmal sage "höchste Zahl anwählen" und einmal eben "ab höchster zahl bis 1". Das Problem ist, dass With .name = die Schriftart des Textes im Shape ändert und ich daher nicht weiß, welcher Befehl einen "Namen" zuweist.
Nachdem ich an mehrere Ansätzen bereits gescheitert bin, sehe ich hiermit bereits Licht am Ende des Tunnels und wäre total dankbar und froh, wenn mir jemand den entscheidenden Hinweis geben könnte.
In diesem Sinne, vielen Dank und Viele Grüße
Felix