본문 바로가기

구글 오피스/앱 스크립트

구글 시트 날짜 자동 계산 버튼 만들기 매크로(앱스 스크립트)

728x90

구글 앱 스크립트를 이용하면 많은 일들을 쉽게 할 수 있지만 특히, 단순 반복적인 업무를 쉽게 할 수 있습니다. 아래는 가장 간단한 형태의 스크립트 작성 예 입니다.
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이 실행됩니다.

728x90