Wie kann ich Visio benutzerdefinierte Forminformationen mit VBA abrufen
-
21-08-2019 - |
Frage
VBA verwenden, wie rufe ich benutzerdefinierte Informationen aus einem Visio 2003-Diagramm gestalten.
Lösung
Brauch Um Forminformationen aus einer Visio-Form:
Function GetCustomPropertyValue(TheShape As Visio.Shape, ThePropertyName As String) As String
On Error Resume Next
GetCustomPropertyValue = TheShape.CellsU("Prop." & ThePropertyName).ResultStr(visNone)
End Function
All diese Funktion tut, ist verwendet die cellsu Eigenschaft auf einer Form von Namen, um die benutzerdefinierten Eigenschaft Shape Zelle zu bekommen ...
Wenn Sie einen Stickler über die Verwendung des auf Fehler Lebenslauf sind neben können Sie überprüfen, ob die Zelle durch erste Prüfung besteht, wenn die Zelle vorhanden ist:
if TheShape.CellExistsU( "Prop." & ThePropertyName , 0 ) then
GetCustomPropertyValue = TheShape.CellsU("Prop." & THePropertyName).ResultStr(VisNone)
Andere Tipps
Sie haben diese, unter http://visio.mvps.org/VBA.htm (Custom Properties)
Public Sub CustomProp()
Dim shpObj As Visio.Shape, celObj As Visio.Cell
Dim i As Integer, j As Integer, ShpNo As Integer
Dim LabelName As String, PromptName As String, ValName As String, Tabchr As String
Open "C:\CustomProp.txt" For Output Shared As #1
Tabchr = Chr(9)
For ShpNo = 1 To Visio.ActivePage.Shapes.Count
Set shpObj = Visio.ActivePage.Shapes(ShpNo)
nRows = shpObj.RowCount(Visio.visSectionProp)
For i = 0 To nRows - 1
Set celObj = shpObj.CellsSRC(Visio.visSectionProp, i, 0)
ValName = celObj.ResultStr(Visio.visNone)
Set celObj = shpObj.CellsSRC(Visio.visSectionProp, i, 1)
PromptName = celObj.ResultStr(Visio.visNone)
Set celObj = shpObj.CellsSRC(Visio.visSectionProp, i, 2)
LabelName = celObj.ResultStr(Visio.visNone)
Debug.Print shpObj.Name, LabelName, PromptName, ValName
Print #1, shpObj.Name; Tabchr; LabelName; Tabchr; PromptName; Tabchr; ValName
Next i
Next ShpNo
Close #1
End Sub
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow