2014-04-21 7 views
0

나는 25 OptionButton (OptionButton1을, OptionButton2, 등 ..) 그대로여러 개의 userform 옵션 버튼을 호출하는 바로 가기?

이라는 각각의 옵션을 가지고있는 사용자 정의 폼을 가지고, 나는 개인 잠수정 OptionButton1_Click, OptionButton2_Click, 등

인가를 만들어 거기에 25 가지 다른 잠수정을 만들지 않고 다른 옵션에 액세스 할 수있는 방법이 있습니까? (OptionButton [x] _Click)

답변

1

나는 짧은 대답이 '아니오'생각하지만, 흥미로운 해결 방법에 대해 살펴 here 있습니다. 당신은 본질적으로 컨트롤 어레이를 가짜로 만들 수 있습니다.

게시물에서 언급 한 것 외에도 OptionButton.Tag에 일종의 태그를 저장하는 것을 고려하여 클릭 할 때 어떤 OptionButton을 클릭했는지 알 수 있습니다 (원하는 경우).

+0

그래, 나는 가능하다고 생각하지 않지만 이것이 좋은 해결 방법이다. 나는 25 개의 개인용 잠수정을 만들고, 변수를 설정하고, 다른 하위 코드를 호출하는 것이 가장 좋다고 결정했다. 그러나 나는 미래에 이것을 염두에 두겠다. 모두 도움을 주셔서 감사합니다. – Josh

+0

사실 저는 중심적인 방법이라고 부르는 25 가지 방법을 가장 현명한 선택이라고 생각합니다. 그것이 내가했을 것입니다. 선명도는 코드 길이보다 (거의) 항상 중요합니다. – LimaNightHawk

0

모든 옵션 버튼을 반복 할 수 있습니다. 예를 들어 :

for i = 1 to 25 

    If Controls("OptionButton" & i).Value = True Then 

     'perform operation if OptionButton is clicked 

    End If 

Next i 
+0

각 옵션 버튼의 이름이 다른 경우 어떻게하면 25 개의 OptionButton [i] _Click 서브 링크없이이 루프를 활성화 할 수 있습니까? – Josh

+0

형식이 OptionButton1, OptionButton2, Optionbutton3 등이 아닌 경우 ... 내가 작성한 코드는 작동하지 않습니다. 내 추천은 OptionButton1, OptionButton2 등 모든 옵션 버튼 이름을 변경하는 것입니다 ... –

+0

그들은 그 이름이 있습니다. For 루프가 어떻게 활성화 될지 확신 할 수 없습니다. 이 코드는 어디에 두어야합니까? Userform Initialize 하위에두면 시작 부분에 한 번만 실행되며 아무 것도 클릭하지 않기 때문에 아무 것도 발생하지 않습니다. 그건 내가 생각하는 명령 버튼이 필요할 것이고, 나는 그것을 사용하지 않기를 바랄 것이다. – Josh