구글 앱 스크립트를 이용하면 많은 일들을 쉽게 할 수 있지만 특히, 단순 반복적인 업무를 쉽게 할 수 있습니다. 아래는 가장 간단한 형태의 스크립트 작성 예 입니다.
var sheet=SpreadsheetApp.getActive().getActiveSheet();
var rngDate=sheet.getRange('C1:C2'); //중앙에 날짜가 들어가는 범위
function plusOneDay(){
rngDate.setValue(new Date(rngDate.getValue().setDate(rngDate.getValue().getDate()+1)));
// 날짜에 해당하는 셀에 +1을 합니다
}
function minusOneDay(){
rngDate.setValue(new Date(rngDate.getValue().setDate(rngDate.getValue().getDate()-1)));
// 날짜에 해당하는 셀에 -1을 합니다
}
이번에는 숫자가 아니라 날짜를 더하고 빼는 간단한 매크로를 만들어 보겠습니다.
1. 'sheet' 변수에 스프레드시트 앱에 현재 실행 된 시트를 넣어줍니다.
var sheet=SpreadsheetApp.getActive().getActiveSheet();
2. 'C1:C2' 셀(범위) 에 날짜값을 변수에 넣어줍니다.
var rngD1=sheet.getRange('D1').getValue();
3. 'plusOneDay()'라는 범위의 날짜 값에 1(하루)을 더 해주는 함수를 만들어 줍니다.
function plusOneDay(){ rngD1.setValue(new Date(rngD1.getValue().setDate(rngD1.getValue().getDate()+1))); }
4. 'minusOne()'라는 범위의 날짜 값에 1(하루)을 빼주는 함수를 만들어 줍니다.
function minusOneDay(){ rngD1.setValue(new Date(rngD1.getValue().setDate(rngD1.getValue().getDate()-1))); }
5. 아래와 같이 버튼을 만들어서 '스크립트 할당'을 마치면 완성~! +, - 를 클릭하면 범위셀에 있는 날짜가 증감 됨을 확인 할 수 있습니다.
모바일에서는 그림에 스크립트 할당이 아직 지원 되지 않으므로 세모 그림을 탭해도 함수가 실행되지 않으므로, '체크박스'를 이용하여 구현하였습니다. (체크박스 탭 = 그림 클릭!)
function onEdit(e){
const rg = e.range;
if(rg.getA1Notation() === "B2" && rg.isChecked() && rg.getSheet().getName() === "Sheet3"){
plusOneDay();
rg.uncheck();
}
if(rg.getA1Notation() === "D2" && rg.isChecked() && rg.getSheet().getName() === "Sheet3"){
minusOneDay();
rg.uncheck();
}
}
▶ 모바일(데스크탑에서도 마찬가지)에서는 B2의 체크박스를 탭하면 범위 날짜 값에 +1, D2의 체크박스를 탭하면 -1이 실행됩니다.
'구글 오피스 > 앱스 스크립트' 카테고리의 다른 글
구글 스프레드시트 트리거, 생성 삭제 (1) | 2024.08.30 |
---|---|
구글 스프레드시트 날짜 시간 자동 계산 입력 함수(스크립트 자동 계산 입력, onEdit, Date, Time 함수) (3) | 2021.06.22 |
구글 스프레드시트 실행 시 맨 처음 열리는 시트 지정하는 방법 (1) | 2021.05.23 |
구글 스크립트로 여러명에게 한꺼번에 이메일 보내는 방법(동시 발송) (0) | 2021.05.23 |
구글 스프레드시트 특정 구간 변경 시 자동 시간 기록 함수[ onEdit() 함수 활용] (0) | 2021.05.23 |