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

 조삿갓 (choga21)

추천:  2
파일:     셀버튼.xlsm (16.9KB) 조회:  4049
제목:   [RE]매크로 실행 버튼 위치 참조 및 체크박스 위치 참조.
     
  * 답변하시는 분들께 도움이 되도록 자신의 환경을 아래 항목 옆에 기재해 주세요.

 - 엑셀 버전(95,97,2000,xp,2003,2007): 2007

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

수고 많으십니다.
첨부 파일을 다운하셔서 확인하시면 약 300개의 질의 사항에(4번까지만 예시하였습니다) 8명의 담당자를 지정하고자 합니다(담당자가 바뀔 수 있습니다). 그리고 질문마다 담당자를 선택하여 질문사항을 필터링하려고 합니다. 그리고 매크로 실행 버튼을 누를 때 마다 질문사항의 첨언을 추가하고자 합니다. 

2가지를 고민하고 있습니다.

1. 매크로 실행 버튼의 위치를 참조하여 매크로를 작성하고자 합니다. 파일을 보시면 실행버튼을 눌러 실행하는 내용중 셀에 이름을 지정하여 절대참조로 사용하고 있습니다. 그리고 절대참조의 위치가 버튼이 위치해 있는 셀입니다. 가능한 부분이라면 버튼의 위치를 절대 참조로 하는 vba를 찾아 하나의 code로 300개의 실행버튼을 연결하여 사용하고자 합니다.

2. 이것도 위의 것과 비슷한 내용입니다. 각 담당자를 선택하는 activeX 체크박스를 만들고 있습니다. 어찌어찌해서 체크박스 위치를 참조하는 vba를 작성하였습니다만 약 2400개의 체크박스를 일일이 지정하기가 힘들어 가능한 부분이라면 체크박스 번호를 참조하는 vba를 찾아 하나의 code로 2400개를 연결하여 사용하고자 합니다.

고수분들의 조언 부탁드립니다.

감사합니다.
==============[봄봄님 글에 대한 답변입니다]==============

원하시는 기능은 컨트롤 배열을 이용해야 하는데
유감스럽게도 엑셀에 딸린 VBA에서는 컨트롤 배열을 지원하지 않습니다.

Visual Studio에 있는 오리지널 VB에서만 컨트롤 배열을 쓸 수 있습니다.

조금 편법으로,
셀 자체를 버튼처럼 보이게 해서(회색 음영을 넣고 외곽선을 이중괘선으로 하는 등)
WorkSheet_SelectionChange 이벤트를 가로채서 버튼의 동작을 시키는 편법은 쓸 수 있을 겁니다.

첨부파일은 제가 실험삼아 시도해 본 것입니다.
참고하여 잘 응용해 보시기 바랍니다.

옵션 버튼의 경우는 셀 글꼴을 '함초롱바탕'으로 해야 버튼 크기가 어색하지 않게 보이네요.
 
[불량 게시물 신고]  
조삿갓생각해보니 옵션버튼이나 체크박스의 경우에는
양식 컨트롤로 만든 다음, 연결 셀을 지정해서
그 연결 셀의 위치 정보(행, 열)를 이용하는 것이 더 효율적이겠네요.
아예 여러 개의 체크박스나 옵션버튼을 원하는 위치에 원하는 개수만큼 자동으로 만들어 배치하는 코드를 설계 중에 있습니다. 오늘은 일단 잠을 좀 자야겠습니다.
05-18 (00:36)
삭제 ■신고
봄봄감사합니다.06-05 (08:19)
삭제 ■신고
        
  

작성일 : 2018-05-16(22:11)
최종수정일 : 2018-05-16(22:11)
 


 ◎ 관련글

  제 목   작성자   날짜
매크로 실행 버튼 위치 참조 및 체크박스 위치 참조. 봄봄 2018-05-14
[RE]매크로 실행 버튼 위치 참조 및 체크박스 위치 참조. 조삿갓 2018-05-16
[Tip] 셀참조를 활용한 컨트롤 배열 흉내내기 조삿갓 2018-05-19