1. 문제
구글 스프레드시트에서 버튼을 클릭 시 숫자를 증가시키려고 합니다.
2. 해법
가. ChatGPT의 대답
잘 몰라서 ChatGPT에게 물어보니 아래와 같이 스크립트를 작성하고 저장 후 삽입메뉴에서 그림을 선택해서 이미지를 추가하고 스크립트를 연결하면 된다고 합니다.
아주 자세하게 설명이 되어 있고, 코드도 제시하니 너무 편리합니다. 하나씩 따라 해 보겠습니다.
function incrementNumber() {
// 숫자를 증가시킬 시트와 셀을 지정
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var cell = sheet.getRange('A1'); // 숫자를 표시할 셀을 선택합니다. 이 예시에서는 A1셀을 사용합니다.
var currentValue = cell.getValue(); // 현재 셀의 값(숫자)를 가져옵니다.
var newValue = currentValue + 1; // 현재 값에 1을 더한 값을 새로운 값으로 저장합니다.
cell.setValue(newValue);// 변경된 값을 셀에 설정합니다.
}
나. 구글 시트 실행
구글 시트는 스마트폰만 개통해도 지메일 계정이 생기니 인터넷으로 아래 URL을 입력하고,
https://docs.google.com/spreadsheets
구글 아이디를 물어보면 개통한 이메일 주소를 입력하거나 선택하면 구글 스프레드시트가 실행됩니다.
빈 스프레드 시트와 할 일 목록 등 템플릿이 나열되는데, 빈 스프레드 시트를 클릭합니다.
다. Apps Script 실행
확장 프로그램 메뉴 아래 Apps Script를 실행합니다.
Apps Script는 엑셀의 매크로 같은 것인데, Visual Basic이 아니라 Javascript로 만들어진 것이 다릅니다.
그러면 아래와 같이 Apps Script 작성 화면이 나오는데, ChatGPT가 제시한 코드를 복사한 후 붙여 넣고, 위 저장 버튼을 누릅니다.
그다음 구글 시트로 돌아가기 위해 구글 시트 탭을 클릭합니다. 이런 식으로 Apps Script와 구글 시트 탭이 별개로 되어 있습니다.
'제목 없는 프로젝트'의 이름을 변경하려면 '제목 없는 프로젝트' 부분을 클릭한 후 수정하고 '이름 변경하기'를 누르면 됩니다. '숫자 증가'로 변경하겠습니다.
라. 그림 추가
구글 시트에서 바로 실행할 수는 없으니 버튼을 만들어서 스크립트를 할당(엑셀에서는 매크로 지정) 해야 합니다.
C3셀을 클릭한 상태에서 삽입 메뉴를 누르고 그림 메뉴를 클릭합니다.
그러면 그림 창이 열리는데, 도형 아이콘을 클릭 한 다음
적당한 도형을 선택합니다.
그리고, 적당한 크기로 그립니다.
그림에 텍스트를 넣으려면 그림에서 마우스 오른쪽 버튼을 누른 후 텍스트 수정 메뉴를 누르고 '숫자 증가'라고 입력하고, 그림 밖 영역을 클릭해서 텍스트 수정을 완료합니다.
이제 오른쪽 위 '저장 후 닫기' 버튼을 누르면
구글 시트에 버튼이 생성됩니다.
마. 스크립트 할당
그림에서 마우스 오른쪽 버튼을 누르면 세로 3점이 생기는데, 세로 3점을 누르면
스크립트 할당 메뉴가 보이므로 누릅니다.
스크립트 할당 창이 열리는데, 스크립트를 목록에서 선택하는 것이 아니라 스크립트 명을 직접 입력해야 합니다.
이 상태에서 Apps Script 탭을 클릭한 후 스크립트 명인 incrementNumber를 복사하고, 구글 시트로 돌아와서 입력 란에 붙여 넣고 확인 버튼을 누릅니다.
바. 스크립트 실행
버튼을 누르면 구글 시트 안에 만든 것인데도 '사용자의 허가가 필요합니다'라고 하면서 취소, 확인 버튼이 표시됩니다. 확인 버튼을 누릅니다.
그러면 다시 계정을 선택하라고 하니 계정을 선택합니다.
이름을 변경했는데도 제목 없는 프로젝트라 표시됨
그러면 빨간색 세모에 느낌표가 표시되면서 '안전한 환경으로 돌아가기' 버튼이 보이는데 이것을 누르면 안 되고, 왼쪽 고급 버튼을 누른 후
왼쪽 아래에 있는 '제목 없는 프로젝트로 이동'을 누릅니다.
다시 'Google 계정에 액세스 하려고 합니다'란 메시지를 뿌리면서 허용 여부를 묻는데, 허용을 누릅니다.
그러면 스마트폰으로 보안 경고 알림 메일이 오는데 누른 후, '활동 확인' 클릭, '본인의 활동이 맞습니다'를 클릭하면 됩니다.
이제 버튼을 누르면 스크립트 실행 메시지가 표시되면서 A1셀의 숫자가 1씩 증가합니다.
사. 숫자 초기화 스크립트 작성 및 그림 추가
Apps Script를 실행한 후 아래 코드를 기존 코드 아래에 붙여 넣습니다.
function NumberClear() {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var cell = sheet.getRange('A1'); // 숫자를 표시할 셀을 선택합니다. 이 예시에서는 A1셀을 사용합니다.
cell.setValue(0); // 현재 셀의 값(숫자)를 가져옵니다.
}
그리고, 그림을 추가하는데, 아래와 같이 삽입 - 그림을 눌러 빈 화면을 만든 후 추가해야지
기존 그림에서 마우스 오른쪽 버튼을 클릭한 후 수정 메뉴를 눌러 아래 화면이 나오도록 한 후 그림을 추가하면 그룹이 되고, 스크립트 할당이 하나만 되므로 주의해야 합니다.
삽입 - 그림 메뉴를 눌러 새로운 버튼을 만드는데, 크기와 높이를 조절합니다. 크기와 높이가 동일하면 파란색 실선이 표시되므로 이를 참고해서 맞추면 됩니다.
아래는 숫자 초기화 버튼을 눌러 숫자를 0으로 만든 화면입니다.
https://docs.google.com/spreadsheets/d/1-rOxfQL3mT3fnPp51KH8sgwgA7B5L6V3pKJ2onob7t8/edit?usp=sharing
'구글 스프레드시트' 카테고리의 다른 글
구글 스프레드시트 호환성 - Index + Aggregate(2) (0) | 2024.08.26 |
---|---|
구글 스프레드 시트 호환성 - Index + Aggregate(1) (0) | 2024.08.23 |
여러가지 조건을 만족하는 개수 세기(4) - 구글 스프레드시트의 ByRow 함수 (0) | 2024.08.12 |
구글 스프레드시트 공유하기 (0) | 2024.04.25 |
(구글 스프레드시트) 조건부 서식 - 맞춤 수식 (2) | 2024.03.19 |