구글 스프레드시트(Google Spreadsheet)/스프레드시트 프로젝트

구글 스프레드시트로 2023년 다이어리 만들기-Apps Script 편

G@$ 2023. 1. 6. 04:51

구글 스프레드시트로 다이어리 만들기

지난 포스팅을 통해 구글 스프레드시트로 다이어리를 만드는 방법에 대해 알아보았습니다.

먼저 데이터 입력 시트와 데이터를 기록하는 시트로 나누어 구성을 하였는데요.

다이어리 만들기의 기본이 되는 만큼 아래 링크를 먼저 확인해 주세요.

 

구글 스프레드시트로 2023년 다이어리 만들기

2023년 다이어리 만들기 스프레드시트로 다이어리를 작성한다는 게 듣기에는 그럴싸해 보이지만 왠지 많이 불편할 것 같습니다. 사실 애플이나 안드로이드 진영의 어플 스토어를 조금만 뒤져보

youareniceman.tistory.com

앱스 스크립트(Apps Script)를 활용하여 데이터 입력하기

구글 스프레드시트는 데이터를 입출력할 수 있는 기능을 제공하고 있습니다.

아쉽게도 모바일에서는 안되고 PC에서만 사용가능한 Apps Script라는 기능을 통해 가능한데요.

엑셀 VBA처럼 스크립트로 원하는 기능을 추가해 줄 수 있습니다.

지난번 포스팅을 통해 앱스 스크립트를 활용하여 데이터를 어떻게 입력할 수 있는지에 대해 간략하게 알아보았습니다.

아래 링크를 확인해 주세요.

 

구글 스프레드시트 Apps Script, 데이터 입력을 위한 스크립트

구글 스프레드시트의 확장프로그램인 Apps Script는 엑셀의 VBA와 비슷한 기능을 가지고 있습니다. 그래서 데이터를 입력한다거나 삭제한다거나 수정을 위한 스크립트를 작성할 수 있어 데이터 입

youareniceman.tistory.com

다이어리에 데이터 입력하기 위한 스크립트 작성

앱스 스크립트에 대해 이해가 되었다면 이제 본격적으로 스크립트를 작성할 수 있습니다.

스크립트를 실행하는 방법은 몇 가지가 있지만 가장 보편적으로 사용하는 방법이 실행버튼을 만드는 건데요.

아래 링크를 클릭하셔서 실행버튼을 만드는 방법을 확인해 주세요.

 

구글 스프레드시트 앱스 스크립트 명령어를 실행시키기 위한 버튼 만들기

구글 스프레드시트 확장 프로그램에 있는 Apps Script를 활용하면 구글 스프레드시트를 간단한 데이터 입출력 프로그램으로 활용할 수 있습니다. 개인의 용도에 따라 가계부, 다이어리, 계획표, 간

youareniceman.tistory.com

이제 실행버튼을 만드셨다면 아래와 같이 스크립트를 작성한 후 function 이름을 버튼에 할당해 주시면 됩니다.

그럼 데이터를 입력하기 위한 스크립트는 아래와 같습니다.

// Save Data
function submitRegistrar() {
 var SPREADSHEET_NAME = "data";
 var SEARCH_COL_IDX = 0;
 var RETURN_COL_IDX = 0;

  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var formSS = ss.getSheetByName("DAILY"); //Form Sheet
  var datasheet = ss.getSheetByName("data"); //Data Sheet

   var str = formSS.getRange("C3").getValue();
   var values = ss.getSheetByName(SPREADSHEET_NAME).getDataRange().getValues();
    for (var i = 0; i < values.length; i++) {
     var row = values[i];
     if (row[SEARCH_COL_IDX] != str) {
       var values1 = [[formSS.getRange("C3").getValue(),
       formSS.getRange("C5").getValue(),
       formSS.getRange("C6").getValue(),
       formSS.getRange("C7").getValue(),
       formSS.getRange("C8").getValue(),
       formSS.getRange("C9").getValue(),
       formSS.getRange("C10").getValue(),
       formSS.getRange("C11").getValue(),
       formSS.getRange("C12").getValue(),
       formSS.getRange("C13").getValue(),
       formSS.getRange("C14").getValue(),
       formSS.getRange("C15").getValue(),
       formSS.getRange("C16").getValue(),
       formSS.getRange("C17").getValue(),
       formSS.getRange("C18").getValue(),
       formSS.getRange("C19").getValue(),
       formSS.getRange("C20").getValue(),
       formSS.getRange("C21").getValue(),
       formSS.getRange("C22").getValue()]];
       // Save New Data
        datasheet.getRange(datasheet.getLastRow()+1, 1, 1, 19).setValues(values1);
        SpreadsheetApp.getUi().alert(' "New Data Saved');
      return row[RETURN_COL_IDX];
    }
  }
}

위 식을 그대로 복사하여 앱스 스크립트의 Code.gs에 붙어넣기 해줍니다.

그런 다음 스크립트를 저장한 후 스프레드시트로 돌아와서 function 이름인 submitRegistrar를 그대로 실행버튼에 할당해 줍니다.

할당하는 방법은 실행버튼 - 마우스 오른쪽 클릭하면 나오는 점 세게 클릭 - 스크립트할당 순으로 이동하여 function 이름을 붙여 넣기 해줍니다.

저는 REGISTER 버튼에 스크립트를 할당 하였고 권한설정을 해준 후 버튼을 실행하였습니다.

아래 사진과 같이 "New Data Save"라는 대화상자가 뜨면 잘 작동한 거예요.

스프레드시트-2023년-다이어리-데이터-입력-사진
스프레드시트-2023년-다이어리-데이터-입력

확인을 눌러주면 끝입니다.

그다음 다시 내용을 등록해 줘야겠죠?

그러기 위해서는 셀의 내용을 지워줘야 하는데 일일이 지우기가 굉장히 번거롭습니다.

다음 시간에는 셀의 데이터를 한 번에 지워주는 스크립트에 대해 알아보도록 하겠습니다.

감사합니다.