본문 바로가기
Cito 일/구글 앱 스크립트

구글스프레드 입력자 이력 남기기

by citopes 2020. 8. 11.
반응형

구글스프레드의 장점중의 하나는 변경이력을 볼 수 있다는것이다.
얼마전에 기능이 추가 되었으며, 예전처럼 시트 전체의 변경이력을 확인하기 보다는 필드의 수정이력을 확인하려고 할때 좋다.

수정 기록 표시

이 "수정 기록 표시"에는 [누가] [언제] [무엇을] 이 표시되며 < > 를 눌러서 이전 이력을 볼 수 있다.
이 기능은 개인작업에도 유용하지만 공동작업시 반드시 필요한 기능이다.

오늘 말하고자 하는것은 누가, 언제, 해당 셀을 업데이트 했는지를 표시하려는 것이며 일반 CS프로그램 같은경우에 일반적으로 "최종수정자 및 수정일시"를 표시하는것과 비슷한 맥락이다.

스크립트 시작하기

스크립트 편집기 시작

스프레드 시트에서 [도구] > [스크립트 편집기] 실행하면 된다.

스크립트를 열어서 우선 제목을 변경해 줍니다. 
그리고 기본적으로 있는 function myFunction() 은 삭제해 줍니다.

onEdit() 함수 입력

onEdit()함수는 트리거 함수입니다.
다음은 구글앱스스크립트의 안내서에 있는 내용입니다.

onEdit()

onEdit() 함수는 스프레드 시트를 편집 할 때 발생하는 트리거를 지정합니다.
한마디로 무엇인가가 수정되었을때 작동하는 함수 입니다.
입력, 수정, 삭제 모두에게 발생합니다.

수정 되었으면 저장해주세요.
만약 저자된 스크립트가 정상 작동 하지 않는다면, 스크립트에 액세스권한이 있는지 확인해 주세요
처음 스크립트를 실행한다면 아래 "구글앱 스크립트 권한 허용하기" 문서를 참조해 주세요.

 

구글앱 스크립트 권한 허용하기

스크립트를 작성해주고 실행이 안되는 경우가 있습니다. 처음에는 저도 상당히 당황 했는데요. 스크립트 실행 권한을 해당 계정에 부여를 해줘야 합니다. 문서를 공유한 사람도 당연히 허용을 해줘야 합니다. 그래..

www.citopes.com

해당 셀 위치값 구하기

어떠한 특정한 셀의 위치가 변경 되었을때 이력을 남겨야 할것이다.
아무데나 수정되었을때 이력을 남길 수도 있겠지만 그런건 의미가 없으니까요.

function onEdit() {
  
  var ss = SpreadsheetApp.getActiveSpreadsheet(); //실행할 시트
  
  var activeCell = ss.getActiveCell(); //값이 바뀐 셀
  var rowIndex = activeCell.getRowIndex(); // 바뀐 셀의 row 값
  var columnIndex = activeCell.getColumnIndex();  // 바뀐 셀의 column 값
  
Browser.msgBox(activeCell)    
Browser.msgBox(rowIndex)
Browser.msgBox(columnIndex)
  
  }

셀의 위치값을 받아옵니다. 
결과를 눈으로 확인하기 위해서 저는 msgBox를 주로 사용합니다.
결과를 볼까요?

 

반응형

댓글