나눔터  
  HOME > 나눔터 > 묻고답하기 > 엑셀
엑셀
엑셀에 대한 질문과 답변을 올려주세요. 단, 취지에 맞지 않는 글은 운영자가 삭제합니다.
 "000 님, 도와주세요", "부탁 드립니다.", "급합니다!" 등과 같이 막연한 제목을 달지 말아주세요.
[필독] 빠르고 정확한 답변을 얻는 16가지 Tip !
[필독] 저작권법 개정에 따른 이용안내

작성자:  

 영감님 (hideking)

추천:  2
파일:     조회:  6270
제목:   vba 토글버튼 사용법(하나 on 나머지 off)
     
  * 답변하시는 분들께 도움이 되도록 자신의 환경을 아래 항목 옆에 기재해 주세요.

 - 엑셀 버전 : 2010

* 아래줄에 질문을 작성하세요 >>

여러개의 토글버튼을 사용하려고하는데요
하나를 누르면 나머진 off되었으면 하는데
if then 문 말고 다른 방식으로 좀 간단하게 구현할 수 없을까요?
토글버튼 갯수가 많아서요...


if t1.value = true then
 t2=false,
 t3=false
end if
=======
if t2 = true then
 t1=false,
 t3=false
end if
=======
if t3 = true then
 t1=false,
 t2=false
end if 

----------------------
그리고 토글버튼의 갯수가 많은데, 80여개...
t1, t2, t3,.... 버튼명의 숫자를 배열처리로 간단하게 할 수 없을까요?
 
[불량 게시물 신고]  
조삿갓목적에 따른 컨트롤 개체를 잘못 선택하셨습니다.
토글버튼은 그 자체(개개의 것)이 독립적으로
on 상태와 off 상태를 번갈아 유지하는 특성이 있으며

지금 원하시는 것처럼 어떤 그룹의 컨트롤들이
서로 배타적으로 하나가 on 되면 
다른 것은 모두 off가 되게 하려면
토글버튼이 아닌 옵션버튼(라디오버튼이라고도 하지요)을
사용하셔야 합니다.

옵션버튼의 원래 동작 방식이 그러하므로
일부러 VB 코드를 작성할 필요도 없고, 
작성해서도 안됩니다.(오히려 엉뚱한 동작이 일어날 수 있음)
05-09 (14:19)
삭제 ■신고
조삿갓다만, 옵션버튼은 그룹 단위로 배타적 동작이 일어나므로
그룹핑을 위해서는 먼저 프레임 개체를 삽입한 다음에
그 프레임 안에다가 필요한만큼 옵션버튼을 삽입하면 됩니다.
(프레임 개체의 크기를 잘 정해줘야 하겠지요)

워크시트에 삽입하는 양식 컨트롤이나 ActiveX 컨트롤은 물론
사용자정의폼의 컨트롤 역시 마찬가지입니다.

토글버튼을 모두 삭제하고
프레임 안의 옵션버튼으로 바꾸세요.
그 노가다가 VB 코드 짜는 노가다보다
더 나을 겁니다.

오리지날 VB(Microsoft Visual Studio에 있는)에서는
컨트롤 배열이 가능하지만
MS-Office에 딸린 VBA에서는 컨트롤 배열을 쓸 수 없습니다.
05-09 (14:19)
삭제 ■신고
영감님처음에 토글버튼의 모양대로 버튼이 있으면 좋겠다고 막연하게 생각해서 시작해버린게 옵션버튼을 생각못했네요...;;;

완전 노가다를 하고 있다가, vba가 이런게 아닌데...생각이 들어 질문했었는데...조삿갓님 덕분에 바보짓을 멈출 수 있게 되었네요;; 

감사합니다
05-09 (14:28)
삭제 ■신고
        
  

작성일 : 2018-05-09(14:08)
최종수정일 : 2018-05-09(14:09)