2014-12-10 6 views
0

꽤 자명하다. 나는 많은 호출을 할 잠수함/기능 집합을 가지고있다. 예를 들어 컬렉션이나 그와 동등한 것으로 저장할 수 있기를 바랍니다. 예를 들면 다음과 같습니다 :VBA - 컬렉션 또는 다른 저장 위치에서 하위 또는 함수를 호출 할 수 있습니까?

for counter = 1 to 10 
    call MetricSubs(counter) 
next counter 

이게 가능합니까? 의 포함 또는 주문에 변경 사항이있을 경우

Public Sub OuterMethod() 
    ' do some stuff 
    Call InnerMethod() 

End Sub 

Public Sub InnerMethod() 

    Call MethodOne() 
    Call MethodTwo() 
    Call MethodThree() 

End Sub 

: 당신은 항상 같은 순서로 같은 메소드를 호출 할 것이다 경우

+0

'macro1','macro2'와 같은 이름을 붙이면'callByName "매크로"& i'를 할 수 있습니다. –

답변

1

은 올바른 방법은 메서드를 호출하는 방법을 호출하는 것입니다 호출 할 메서드, 나는 그것이 예측 가능하고 한정된 세트라고 추측한다. 훌륭한 기능적 프로그래밍에는 이러한 각각의 경우에 대한 부모 메소드가 있습니다. 코드를 읽고 유지하는 것이 훨씬 쉬울 것입니다.

Public Sub OuterMethod() 

    If widget.isRed Then 
     Call RedWidgetStuff() 
    ElseIf widget.isBlue Then 
     Call BlueWidgetStuff() 
    Else 
     Call NoWidgetStuff() 
    EndIf 

End Sub 

Public Sub RedWidgetStuff() 

    Call SetWidgetColor(Red) 
    Call PaintWidget() 
    Call FinishWidget() 

End Sub 

Public Sub BlueWidgetStuff() 

    Call SetWidgetColor(Blue) 
    Call PaintWidget() 
    Call FinishWidget() 

End Sub 

Public Sub NoWidgetStuff() 

    Call FinishWidget() 

End Sub 

여전히 함수를 컬렉션에로드해야한다고 생각되면 나는 당신의 접근 방식에 대해 진지하게 질문 할 것입니다. 더 나은 프로그래머는 생각에 찡그린 것입니다.

+0

고마워요, 그렇게 생각하지 않았습니다. – Kaz