작업대상 : 구글스프레드시트 체크박스와 AppsScript
- 작업범위 : 구글스프레드시트 → 리본 메뉴 중 “확장 프로그램” → Apps Script
- 예제 스프레드 시트 URL : https://url.kr/khiotn
구글스프레드 시트로 업무를 다루다 보면 체크박스를 일괄 선택하거나 해제 기능이 필요한 경우가 종종 발생합니다. 체크박스가 여러개인 경우 이 체크박스 상태를 한번에 전체선택 또는 전체해제가 필요한 경우도 있을거예요.
아래는 앱스스크립트를 이용해 원클릭으로 전체선택과 전체해제를 하는 방법입니다.
아래의 그림을 먼저 볼까요. C2셀부터 C27셀까지 체크박스가 삽입되어 있습니다.
이 체크박스들이 존재하는 구글스프레드시트에서 리본 메뉴 중 “확장 프로그램”-Apps Script 클릭하세요.
새로 뜨는 앱스스크립트 창에서 아래의 코드를 삽입합니다.
- 아래 소스코드 박스에 있는 스크립트 내용 중 9행과 11행의 파란색 글씨 부분(‘C2:C‘)의 셀주소를 실제 적용하려는 셀주소로 바꿔주세요.
var range = SpreadsheetApp.getActive().getRange('C2:C');
(설명 : C2셀부터 그 아래 C열의 모든 영역을 컨트롤 하기로 선언한 상태입니다.)
- 소스코드 박스
/** 체크박스 일괄 선택 */
function toggleAllCheckbox_check() {
var spreadsheet = SpreadsheetApp.getActive();
//선택 실행 계속 여부 확인
var ui = SpreadsheetApp.getUi();
var btn = ui.alert("체크박스 전체선택을 진행 하시겠습니까?", ui.ButtonSet.YES_NO);
if (btn == ui.Button.YES ){
//체크박스 선택
var range = SpreadsheetApp.getActive().getRange('C2:C');
range.check();
var range = SpreadsheetApp.getActive().getRange('C2:C');
range.check();
ui.alert("체크박스 전체선택 완료😀\n 되돌리려면 Ctrl+Z 1회!");
} else {
ui.alert("체크박스 전체선택 취소😤");
}
};
/** 체크박스 일괄 해제 */
function toggleAllCheckbox_Uncheck() {
var spreadsheet = SpreadsheetApp.getActive();
//해제 실행 계속 여부 확인
var ui = SpreadsheetApp.getUi();
var btn = ui.alert("체크박스 전체해제를 진행 하시겠습니까?", ui.ButtonSet.YES_NO);
if (btn == ui.Button.YES ){
//체크박스 해제
var range = SpreadsheetApp.getActive().getRange('C2:C');
range.uncheck();
var range = SpreadsheetApp.getActive().getRange('C2:C');
range.uncheck();
ui.alert("체크박스 전체해제 완료😀\n 되돌리려면 Ctrl+Z 1회!");
} else {
ui.alert("체크박스 전체해제 취소😤");
}
};
체크박스 전체 선택/해제 버튼 만들기
다시 시트로 돌아와 버튼 2개(선택 버튼/해제 버튼)를 만들고 이 버튼들에게 해당하는 액션을 취할 스크립트를 할당하겠습니다. 스크립트 할당을 하려면 만드려는 버튼 2개에 각각 명령함수를 할당해야 합니다. 위 소스코드에 명령함수가 이미 지정되어 있어요.
Tip. 소스코드 상에서 명령함수의 이름은 임의로 바꾸셔도 괜찮아요.
전체선택 명령함수(소스코드 박스 1행) : toggleAllCheckbox_check
전체해제 명령함수(소스코드 박스 19행) : toggleAllCheckbox_Uncheck
버튼을 만드려면 시트 리본 메뉴에서 “삽입-그림” 클릭
버튼을 직접 만듭니다.
도형 메뉴를 누르고 아래와 같이 적당한 크기로 버튼을 만들고 버튼 이름까지 써 넣어주세요. 전체선택 버튼 하나, 전체해제 버튼 하나를 만들고 우측 상단의 “저장 후 닫기”를 누릅니다.
지금 만든 2개의 버튼에 각각 명령함수를 할당 할게요.
전체선택 명령함수 : toggleAllCheckbox_check
전체해제 명령함수 : toggleAllCheckbox_Uncheck
체크박스 버튼에 명령함수 할당은 이렇게 진행해주세요. 전체선택 버튼 우측의 3점 아이콘을 클릭하고 “스크립트 할당” 클릭 후
전체선택 명령함수를 붙여넣습니다. : toggleAllCheckbox_check
여기까지가 “체크박스 전체 선택 버튼”에 명령함수를 부여하는 단계예요. “전체해제 버튼”에도 동일한 방식으로 “전체해제 명령함수(toggleAllCheckbox_Uncheck
)”를 할당 해주세요.
완성
체크박스 전체선택/전체해제 버튼 만들기까지 모두 완료 됐고, 이제 체크박스 전체선택/전체해제가 버튼 두개로 가능해졌습니다.