작업대상 : 구글스프레드시트 체크박스 작업범위 : 구글스프레드시트->리본 메뉴 중 "확장 프로그램"-Apps Script 예제 스프레드 시트 URL : https://url.kr/khiotn 스프레드 시트로 업무를 다루다 보면 체크박스를 활용하는 경우가 종종 발생합니다. 체크박스가 여러개인 경우 이 체크박스 상태를 한번에 전체선택 또는 전체해제가 필요한 경우도 있을거예요. 앱스스크립트를 이용해 원클릭으로 전체선택과 전체해제를 하는 방법입니다. 1.아래의 그림을 먼저 볼까요. C2셀부터 C27셀까지 체크박스가 삽입되어 있습니다. 이 체크박스들이 존재하는 스프레드시트에서 (리본 메뉴 중 "확장 프로그램"-Apps Script 클릭) 2.새로 뜨는 앱스스크립트 창에서 아래의 코드를 삽입합니다. 만약 체크박스가 위치한 셀주소가 아래 스샷의 코드와 다르다면 빨간 테두리 부분을 바꿔주세요. ㄴvar range = SpreadsheetApp.getActive().getRange('C2:C'); ㄴC2셀부터 그 아래 C열의 모든 영역을 컨트롤 하기로 선언한 상태입니다.
3.다시 시트로 돌아와 버튼 2개(선택 버튼/해제 버튼)를 만들고 이 버튼들에게 해당하는 액션을 취할 스크립트를 할당하겠습니다. 스크립트 할당을 하려면 만드려는 버튼 2개에 각각 명령함수를 할당해야 합니다. 위 코드에 명령함수가 이미 지정되어 있고, 명령함수의 이름은 임의로 바꾸셔도 괜찮아요. 전체선택 명령함수 : toggleAllCheckbox_check 전체해제 명령함수 : toggleAllCheckbox_Uncheck 4.버튼을 만드려면 시트 리본 메뉴에서 "삽입-그림" 클릭 5.버튼을 직접 만듭니다. 도형 메뉴를 누르고 아래와 같이 적당한 크기로 버튼을 만들고 버튼 이름까지 써 넣어주세요. 전체선택 버튼 하나, 전체해제 버튼 하나를 만들고 우측 상단의 "저장 후 닫기"를 누릅니다. 6.지금 만든 2개의 버튼에 각각 명령함수를 할당 할게요. 전체선택 명령함수 : toggleAllCheckbox_check 전체해제 명령함수 : toggleAllCheckbox_Uncheck 전체선택 버튼 우측의 3점 아이콘을 클릭하고 "스크립트 할당" 클릭 후에 전체선택 명령함수를 붙여넣습니다. : toggleAllCheckbox_check 전체해제 버튼에도 동일한 방식으로 "전체해제 명령함수(toggleAllCheckbox_Uncheck)"를 할당 해주세요. 7.이제 체크박스 전체선택/전체해제가 버튼 두개로 가능해졌습니다. 컴퓨터 활용/구글스프레드시트 응용 구글 스프레드 시트에서 체크박스 다루기 1 - 전체 선택, 해제 / 구글 앱스 스크립트Richard Shin 2022. 8. 10. 12:38 A1 셀의 체크박스를 클릭하여 체크된 상태로 바꾸면 2행부터 마지막행 까지 모두 선택하고 체크를
해제하면 모두 해제 되는 예제 입니다. 두가지 방법으로 구현해 보았습니다. 첫 번째는 getDataRange 를 이용하여 데이터영역을 취한 뒤 루프를 돌려 수작업으로 구현하는 방법이고
checkRange
에 데이터가 포함된 테이블이 2차원 배열 형태로 들어갑니다. 배열은 forEach 에 의하여 루프를 도는데요. forEach(function( 행 배열, 배열 행 번호) 이렇습니다. 다음은 Range 객체의 check ,uncheck 메소드인데요 자세한 사항은 레퍼런스에 있습니다. https://developers.google.com/apps-script/reference/spreadsheet/range#check()
A1 열의 isChecked()가 true 이면 영역 전체를 check() 해버리고 아니면 uncheck() 합니다. 속도는 무척 빠르지만 동작하는 것을 확인하려면 트리거에 등록해 줘야 하는데 확장프로그램에 있는 Apps Script 를 선택 하여 나오는 에디터에서 setUpEditTrigger() 를 실행해 줘야 합니다. 예제는 다음에 있으니 개인 구글 드라이브로 복사해서 사용해보시면 됩니다. 파일 메뉴에 사본만들기 체크박스 다루기 체크박스구현 종목명,종목코드,현재가,등락률,전일대비,전일주가,거래량,시장정보,기준일시,수집일시 현대차,005380,196,000,0.00%,0,196,000,599,309,코스피,2022-08-01 16:12:00,2022-08-01 16:27:06 삼성전자,005930, docs.google.com 복사하기 https://docs.google.com/spreadsheets/d/1MbsSABTjB1bvNUXTC8Ur5EJY65YkJSwRa0GMN2JDxIE/copy |