오빠두엑셀 `2026 무료 챌린지` 오픈! 완주하고 수료증 받아가세요! 5년 연속 IT분야 베스트셀러! 「 진짜쓰는 실무엑셀 」로 2026년 공부 끝내기 엑셀이 막히셨나요? Q&A 게시판에서 바로 해결하세요.
메뉴

구글시트, 업무 자동화 특별 스터디 (2강) | 정말 쉬운, 나만의 커스텀 메뉴 만들기⚡

댓글 5
5 (3개 평가)
테카포
테카포 2023.03.18 21:53
앱스크립트 강의 너무 소중합니다. !! 감사합니다!! 더 많은 강의 간절히 부탁드립니다!!
ATOM
ATOM 2023.07.13 11:50
안녕하세요
  var timeZone = Session.getTimeZone(); 에서
getTimeZone 이 취소선으로 나타납니다.
왜 그런걸까요?
오빠두엑셀
오빠두엑셀 작성자 2023.07.16 15:12
안녕하세요.
getTimeZone 함수가 폐기되어서(사용 불가하게 될 예정) 그렇습니다.
아직 geTimeZone 함수는 사용 가능하나, getTimeZone 대신 getScriptTimeZone 함수를 사용해보세요 :)
감사합니다.
Screenshot_2
ATOM
ATOM 2023.07.18 16:01
감사합니다.
강민준🤗
강민준🤗 2024.08.12 09:54
좋은 강의 정말 감사합니다🙇‍♂️
라이브정보
방송일 2022년10월22일 (113회)
강의시간 1시간 9분
보충자료

 ✅ 구글시트 Apps Script 자동화 스터디 2일차 완성 코드

📋Session.getTimeZone 함수는 아직 사용가능하나 향후 미지원 될 예정으로, 함수 작성시 위에 취소선이 표시될 수 있습니다.
그럴 경우, "getTimeZone" 대신 "getSciprtTimeZone" 함수를 사용하면 취소선 없이 코드를 작성할 수 있습니다.
/**
 *  사전미션 - 첫번쨰 미션 (BMI 계산하기)
 *  */
 
/**
 * BMI(체질량지수)를 계산합니다.
 * 
 * @param height 키를 "cm" 단위로 입력합니다.
 * @param weight 몸무게를 "kg" 단위로 입력합니다.
 * @customfunction
 */
 
function BMI(height, weight) {
 
  if (!height || !weight) {
    throw "키(cm) 또는 몸무게(kg)가 누락되었습니다.";
  }
 
  var result = weight / (height/100)**2;
  var condition;
 
  if (result > 25) {
    condition = "비만";
  } else if (result > 23) {
    condition = "과체중";
  } else if (result > 18.5) {
    condition = "정상";
  } else {
    condition = "저체중";
  }
 
  return result.toFixed(2)+" ("+condition+")";
 
   //var result = weight / (height/100)**2
 
}
 
/**
 *  사전미션 - 두번쨰 미션 (현재 시간 출력하기)
 *  */
 
function printTime() {
 
	// 현재 시간을 [yyyy년 MM월 dd일] HH시 mm분 형태로 받아옵니다.
	var newTime = new Date;
	var timeZone = Session.getTimeZone();
	var displayTime = Utilities.formatDate(newTime, timeZone, "[y년 M월 d일] H시 m분")
 
	//var ui = ... 로 안내창을 출력하는 코드를 작성해보세요!
  var ui = SpreadsheetApp.getUi();
  ui.alert(displayTime);
 
}
 
/**
 *  연산자 살펴보기
 *  */
 
function test() {
  var a = 1;
  a = a + 1;
  a += 1;
 
}
 
/**
 *  입력창으로 키/몸무게 받아온 후, BMI 출력/계산하기
 *  */
 
function printBMI() {
 
  var app = SpreadsheetApp;
  var ui = SpreadsheetApp.getUi();
  var height = ui.prompt("키를 cm단위로 입력하세요.").getResponseText();
  var weight = ui.prompt("몸무게를 kg단위로 입력하세요.").getResponseText();
  var result = weight / (height/100)**2;
 
  var ss = app.getActiveSpreadsheet();
  var activeSheet = ss.getActiveSheet();
  var activeCell = activeSheet.getActiveCell();
 
  activeCell.setValue(result.toFixed(2));
 
  ui.alert("당신의 BMI는 "+result.toFixed(2)+" 입니다.");
 
}
 
/**
 *  나만의 커스텀 메뉴 등록하기
 *  */
 
function initCustomMenu() {
 
  var ui = SpreadsheetApp.getUi();
  var menu = ui.createMenu("커스텀메뉴");
  var submenu = ui.createMenu("기능모음");
 
  menu.addItem("BMI입력","printBMI");
  menu.addSeparator();
 
  menu.addItem("현재시간출력","printTime")
  menu.addSeparator();
 
  submenu.addItem("BMI입력","printBMI");
  submenu.addItem("현재시간출력","printTime");
 
  menu.addSubMenu(submenu);
  menu.addToUi();
 
}
 
/**
 *  구글 시트 실행 트리거 이벤트 코드
 **/
 
function onOpen() {
  initCustomMenu();
}