2013-05-15 2 views
0

도형의 모양이 다른 도형으로 계산하려면을 내 다이어그램에 넣으십시오. 나는 그것을 위해 뭔가를 코딩해야한다고 생각한다. 나는 그것에 대해 Visio 2007을 사용합니다.Visio에서 이름으로 도형 계산하기

나는 대부분 으로 구분하고자하는 프로세스 모양이있는 플로우 차트가입니다. 예 : "유형 A", "유형 B". 끝으로 유형 A와 유형 B를 얼마나 자주 사용했는지 알려주는 목록을 갖고 싶습니다. 손으로 계산하는 것은 오류가 발생하기 쉬운 것입니다.

보고서/통계 기능 (독일어로 사용하고 있으므로 정확한 메뉴 이름을 말할 수는 없으므로)을 사용했지만 직접 보고서 기능을 정의 할 수 있습니다. 그 사람이 내 필요에 맞는 기능을 놓친다. 나는 내 형상에 대한 보고서를 작성할 수 있었지만 모든 형상이 선택되었을 때만 보고서를 만들 수있었습니다. 그러나 사용자가 직접 선택해야하는 경우 처음부터 올바르게 계산할 수 있습니다. 정적 보고서 결과를 얻으려면 4-5 회의 클릭을해야합니다.

내가 발견 한 또 다른 유용한 기능은 레이어 방법입니다. 셀 수있는 유형의 레이어를 만든 다음 해당 레이어에 모양을 할당합니다. 그러나 다시 한번, 이것은 너무 오류가 발생하기 쉽습니다. 사용자가 도형을 놓친 경우 수는 틀립니다.

그래서 VBA 코드를 작성해야한다고 생각합니다. 또한 다이어그램 옆에 텍스트 필드가 있습니다. 결과적으로 모든 유형에 대해 카운트가 항상 표시됩니다.. 따라서 유형 A의 모양을 추가 할 때 카운트가 하나씩 증가한다는 것을 알 수 있습니다.

아무에게도 도움이 될 수 있습니까?

답변

1

시도 :

Option Explicit 

Dim myShape As Shape 

Sub ShapesDetails() 

    Call DeleteShapes(True) 

    ActiveSheet.Shapes.AddShape(msoShapeRectangle, 139.5, 81.75, 72, 72).Select 
    Selection.Name = "Rectangle" 
    ActiveSheet.Shapes.AddShape(msoShapeSmileyFace, 252.75, 71.25, 72, 72).Select 
    Selection.Name = "Smiley Face" 
    Application.CutCopyMode = False 

    Call ShapeDetails(True) 

End Sub 

Sub ShapeDetails(x As Boolean) 
    For Each myShape In ActiveSheet.Shapes 
     MsgBox "Shape name: " & myShape.Name & vbTab & " Shape type: " & myShape.Type 
    Next 
End Sub 

Sub DeleteShapes(x As Boolean) 
    For Each myShape In ActiveSheet.Shapes 
     myShape.Delete 
    Next 
End Sub 
1

를 사용하여 데이터 = 사용자 정의 모양 속성 (예를 들어, 'MIO') & & 존재와 개체를 계산하는 보고서를 구성하는 고급 보고서 =. (또는 다른 분야에서 선택할 수있는 많은). 나는 'MIO'속성이 TRUE가되도록 세고 싶었던 모든 상자를 설정하고 표시되는 속성을 표시하도록 선택했습니다. 소계 대화 상자와 다음 창에있는 옵션을 사용하면 카운트가 좋게 보입니다. COUNT를 unticked로 남겨두고 옵션 대화 상자에서 '모든 값 표시'를 활성화하고 '중복 행을 그룹에서 제외'를 선택하십시오.

출력물을 XML Excel Viso 개체로 출력합니다. Visio 개체에 대해 알고, 보고서를 업데이트하려면 오른쪽 클릭 = 보고서 실행을 선택합니다.

HTH