VBA로 Visio 사용자 정의 모양 정보를 검색하려면 어떻게합니까?
-
21-08-2019 - |
문제
VBA를 사용하여 Visio 2003 다이어그램에서 사용자 정의 모양 정보를 검색하려면 어떻게해야합니까?
해결책
Visio 모양에서 사용자 정의 모양 정보를 얻으려면 :
Function GetCustomPropertyValue(TheShape As Visio.Shape, ThePropertyName As String) As String
On Error Resume Next
GetCustomPropertyValue = TheShape.CellsU("Prop." & ThePropertyName).ResultStr(visNone)
End Function
이 모든 기능은 모양의 Cellsu 속성을 사용하여 사용자 정의 속성 셰이프 시트 셀을 이름으로 얻는 것입니다 ...
다음에 ON Error 이력서를 사용하는 것에 대한 스틱서 인 경우 셀이 존재하는지 확인하여 셀이 존재하는지 확인할 수 있습니다.
if TheShape.CellExistsU( "Prop." & ThePropertyName , 0 ) then
GetCustomPropertyValue = TheShape.CellsU("Prop." & THePropertyName).ResultStr(VisNone)
다른 팁
이것을 발견했습니다 http://visio.mvps.org/vba.htm (사용자 정의 속성)
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
제휴하지 않습니다 StackOverflow