1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
我之前的做法是

事先執行下面的 builder_trigger function
讓試算表的指令新增 trigger
開啟自動觸發 function ui_add也可以寫一個 is_open function 之類的來管

function builder_trigger (){
var sheet = SpreadsheetApp.getActive();
  ScriptApp.newTrigger('ui_add') //也可以寫一個 is_open function 來做打開試算表要做的事情
  .forSpreadsheet(sheet)
  .onOpen()
  .create();
}


function ui_add(){

  var ui = SpreadsheetApp.getUi(); //參考 https://www.benlcollins.com/spreadsheets/time-triggers/
  
  ui.createMenu('【更新本月 Google 日曆】')
  .addItem('更新 本月 AAA 個人班表 Google 日曆','copy_sheet_to_cal_click_for_AAA')
  .addItem('更新 本月 BBB 個人班表 Google 日曆','copy_sheet_to_cal_click_for_BBB')
  .addItem('更新 本月 CCC 個人班表 Google 日曆','copy_sheet_to_cal_click_for_CCC')
  .addItem('更新 本月 DDD 個人班表 Google 日曆','copy_sheet_to_cal_click_for_DDD')
}

//addItem 第一個參數是子選項 UI 顯示的文字,第二個參數就是一般要放的指令。
//上面的 copy_sheet_to_cal_click_for_AAA~DDD 都是另外已有的 function 名稱