Guten Abend,
Ich habe da ein kleines Problem mit Visio und VBA und hoffe, dass mir jemand weiter helfen kann.
Mein selbst erstelltes Shape besteht aus 5 Textfeldern, die untereinander liegen. Quasi eine Tabelle mit 5 Zeilen und 1 Spalte. Ich schaffe es, auf das Shape per VBA zuzugreifen und den Text des Shapes zu manipulieren, jedoch gelingt mir das nicht mit den einzelnen Textfeldern.
Jedem Textfeld habe ich einen Namen vergeben, um nicht unbedingt über die ID darauf zugreifen zu müssen.
Leider hat das nicht geklappt.
Über Tipps oder Links zu hilfreichen Seiten würde ich mich sehr freuen und bedanke mich im Voraus für die Mühe.
Viele Grüße
###############
Hallo Herr B.,
ich vermute, Sie haben die Shapes gruppiert. Angenommen, die Gruppe heißt „Gruppe“ (in Visio 2010 kann ich dies in der Registerkarte „Entwicklertools“ Shape-Name einstellen – bis Visio 2007 in „Format / Objektdaten“. Angenommen die Shapes heißen T1, T2, … T5
Sie greifen auf die Shapes immer über die Hierarchie zu, also beispielsweiseweise folgendermaßen:
Sub TexteSchreiben()
Dim i As Integer
For i = 1 To 5
ActivePage.Shapes(„Gruppe“).Shapes(„T“ & i).Text = „Hallo ich bin es!“
Next
End Sub
Oder einzeln:
Sub MehrTexteSchreiben()
Dim vsDok As Document
Dim vsSeite As Page
Dim vsGruppe As Shape
Dim vsKasten As Shape
Set vsDok = ActiveDocument
Set vsSeite = vsDok.Pages(„Zeichenblatt-1“)
Set vsGruppe = vsSeite.Shapes(„Gruppe“)
Set vsKasten = vsGruppe.Shapes(„T1“)
vsKasten.Text = „ich bin der erste“
Set vsKasten = vsGruppe.Shapes(„T2“)
vsKasten.Text = „und ich der zweite“
Set vsKasten = vsGruppe.Shapes(„T3“)
vsKasten.Text = „und ich der dritte“
‚ […]
End Sub
Übrigens: kennen Sie mein Visio-Programmierbuch?
Microsoft Visio 2010-Programmierung: Visio 2010 effizient anpassen und erweitern [Gebundene Ausgabe]
schöne Grüße
Rene Martin