2023년 9월 9일 토요일

Google Apps Script로 메뉴 만들어 스크립트 실행하기

Google Apps Script로  메뉴 만들어 스크립트 실행하기


Google Apps Script로  메뉴 만들어 스크립트 실행하기

Apps Script로 스크립트 작성하기



스크립트는 아래와 같이 AppsScript에서 작성할 수 있습니다.

Apps Script로 스크립트 작성하기



Apps Script에서 로그와 alert창을 띄우는 함수를 작성하겠습니다.

Apps Script에서 로그와 alert창을 띄우는 함수를 작성


실제코드는 아래와 같습니다.
function showAlert() {
  SpreadsheetApp.getUi().alert("showAlert");
  Logger.log("Call showAlert");
}
실제 스크립트를 메뉴를 만들어서 연결 시켜보겠습니다.




상단 메뉴에 버튼 만들기


Google Apps Script에서 제공하는 onOpen()을 이용합니다.
Google Sheets가 열릴 때 마다 실행 되는 트리거 입니다.



방법1

.createMenu('상위메뉴 이름')
.addItem('하위메뉴 이름', '실행될 함수명')

function onOpen() {
    SpreadsheetApp.getUi()
        .createMenu("상위메뉴")
        .addItem("하위메뉴1""menuFun1")
        .addToUi();
}

function menuFun1() {
    Logger.log("하위메뉴1");
    SpreadsheetApp.getUi().alert("하위메뉴1");
}

function menuFun2() {
    Logger.log("하위메뉴2");
    SpreadsheetApp.getUi().alert("하위메뉴2");
}

상단 메뉴에 버튼 만들기 결과



메뉴 사이에 구분선을 넣고 싶은 경우에는
.addSeparator()를 사용하여 추가해 줍니다.

function onOpen() {
    SpreadsheetApp.getUi()
        .createMenu("상위메뉴")
        .addItem("하위메뉴1""menuFun1")
        .addItem("하위메뉴2""menuFun2")
        .addSeparator()
        .addItem("하위메뉴3""menuFun3")
        .addToUi();
}

function menuFun1() {
    Logger.log("하위메뉴1");
    SpreadsheetApp.getUi().alert("하위메뉴1");
}

function menuFun2() {
    Logger.log("하위메뉴2");
    SpreadsheetApp.getUi().alert("하위메뉴2");
}

function menuFun3() {
    Logger.log("하위메뉴3");
    SpreadsheetApp.getUi().alert("하위메뉴3");
}

상단 메뉴에 버튼 만들기 결과



방법2
var sheet = SpreadsheetApp.getActiveSpreadsheet();
var entries = [
{
    name : "하위메뉴 이름",
    functionName : "실행될 함수명"
},
{
    name : "하위메뉴 이름",
    functionName : "실행될 함수명"
},
{
    name : "하위메뉴 이름",
    functionName : "실행될 함수명"
}
];
sheet.addMenu("상위메뉴 이름", entries);

function onOpen() {
    var sheet = SpreadsheetApp.getActiveSpreadsheet();
    var entries = [
    {
        name : "하위메뉴1",
        functionName : "menuFun1"
    },
    {
        name : "하위메뉴2",
        functionName : "menuFun2"
    },
    {
        name : "하위메뉴3",
        functionName : "menuFun3"
    }
    ];
    sheet.addMenu("상위메뉴", entries);
}

function menuFun1() {
    Logger.log("하위메뉴1");
    SpreadsheetApp.getUi().alert("하위메뉴1");
}

function menuFun2() {
    Logger.log("하위메뉴2");
    SpreadsheetApp.getUi().alert("하위메뉴2");
}

function menuFun3() {
    Logger.log("하위메뉴3");
    SpreadsheetApp.getUi().alert("하위메뉴3");
}

상단 메뉴에 버튼 만들기 결과