Veränderung von Mastereigenschaften in einer Schablone

16/04/2008 - 10:44 von eLiz | Report spam
Hallo,

ich hab sehr viele Shapes, die eine bestimmte Action enthalten, die ich
nicht mehr benötige. Ich hab jetzt mittlerweile rausgefunden, wie ich den
Abschnitt im Shapesheet der Shapes auf dem Zeichenblatt mit einem Makro
lösche:

Sub DeleteAction()

Dim iShapeCount As Integer
Dim vsoShapes As Visio.Shapes

Set vsoShapes = ActiveDocument.Pages.Item(1).Shapes

iShapeCount = vsoShapes.Count

If iShapeCount > 0 Then
For i = 1 To iShapeCount

vsoShapes.Item(i).DeleteSection visSectionAction
vsoShapes.Item(i).DeleteSection visSectionUser

Next i
End If
End Sub

Nur jetzt hab ich das Problem, dass ich nicht weiß, wie ich auf die
Schablone zugreifen kann. Ich habe schon versucht, die Definintion von
vsoShapes so zu formulieren:

Set vsoShapes = ActiveDocument.Masters.Item(1).Shapes

aber das Funktioniert nicht.

Ich weiß leider nicht all zu viel über VBA und bin über jeden Tipp dankbar.
Vorallem brauch ich nicht nur die Funktion, sondern auch welcher Datentyp das
dann ist, das fàllt mir nàmlich immer am schwierigsten..

Vielen Dank für die Hilfe,
Gruß
eLiz
 

Lesen sie die antworten

#1 Wolfgang Welscher
16/04/2008 - 18:24 | Warnen spam
Hallo,
so kann man die Master-Shapes per Code editieren.

Gruß
Wolfgang

Set vsoDocs = Visio.Documents

For i = 1 To vsoDocs.Count

'Stencil
If vsoDocs.Item(i).Type = visTypeStencil Then
'Get Masters
Set vsoMasters = vsoDocs.Item(i).Masters

For x = 1 To vsoMasters.Count

Set vsoMaster = vsoMasters.Item(x)
Set vsoMasterCopy = vsoMaster.Open
Set vsoMasterShape = vsoMasterCopy.Shapes.Item(1)
Debug.Print "Shape Name:" & vsoMasterShape.NameU
'an dieser Stelle kann ich das Shape veràndern

vsoMasterCopy.Close

Next x
End If

Next i

End Sub

"eLiz" schrieb im Newsbeitrag
news:
Hallo,

ich hab sehr viele Shapes, die eine bestimmte Action enthalten, die ich
nicht mehr benötige. Ich hab jetzt mittlerweile rausgefunden, wie ich den
Abschnitt im Shapesheet der Shapes auf dem Zeichenblatt mit einem Makro
lösche:

Sub DeleteAction()

Dim iShapeCount As Integer
Dim vsoShapes As Visio.Shapes

Set vsoShapes = ActiveDocument.Pages.Item(1).Shapes

iShapeCount = vsoShapes.Count

If iShapeCount > 0 Then
For i = 1 To iShapeCount

vsoShapes.Item(i).DeleteSection visSectionAction
vsoShapes.Item(i).DeleteSection visSectionUser

Next i
End If
End Sub

Nur jetzt hab ich das Problem, dass ich nicht weiß, wie ich auf die
Schablone zugreifen kann. Ich habe schon versucht, die Definintion von
vsoShapes so zu formulieren:

Set vsoShapes = ActiveDocument.Masters.Item(1).Shapes

aber das Funktioniert nicht.

Ich weiß leider nicht all zu viel über VBA und bin über jeden Tipp
dankbar.
Vorallem brauch ich nicht nur die Funktion, sondern auch welcher Datentyp
das
dann ist, das fàllt mir nàmlich immer am schwierigsten..

Vielen Dank für die Hilfe,
Gruß
eLiz

Ähnliche fragen