113회
구글시트, 업무 자동화 특별 스터디 (2강) | 정말 쉬운, 나만의 커스텀 메뉴 만들기⚡
강의노트
댓글(5)
'오빠두엑셀'의 모든 Live 강의를
월 990원에 자유롭게 수강하세요!
'위캔두 멤버쉽' 가입하기
강의 자료
  • [라이브강의] 구글시트 Apps Script 기초 5주 특별 스터디
    PPT자료
실습파일은 영상 하단 댓글 링크에서도 제공합니다.
라이브 미션
  1. 사전미션 ① : BMI를 계산하는 커스텀 함수
    /* 사전미션 ①
     * BMI를 계산하는 커스텀 함수를 작성해보세요!
     */
     
    /**
     * BMI(체질량지수)를 계산합니다.
     * 
     * @param height 키를 "cm" 단위로 입력합니다.
     * @param weight 몸무게를 "kg" 단위로 입력합니다.
     * @customfunction
     */
     
    function BMI(height, weight) {
    	//var result = weight / (height/100)**2
    }
  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 = ... 로 안내창을 출력하는 코드를 작성해보세요!
     
    }
보충 자료

 ✅ 구글시트 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();
}
시간대별 목차
5 댓글
Inline Feedbacks
모든 댓글 보기
강의노트
'오빠두엑셀'의 모든 Live 강의를
월 990원에 자유롭게 수강하세요!
'위캔두 멤버쉽' 가입하기
강의 자료
  • [라이브강의] 구글시트 Apps Script 기초 5주 특별 스터디
    PPT자료
실습파일은 영상 하단 댓글 링크에서도 제공합니다.
💡 보충 자료 보기 (클릭!)
시간대별 목차
5
0
여러분의 생각을 댓글로 남겨주세요.x