前回の続き
前回までで、一通り実行ができるようになったので、他人に使ってもらうためにメニューに追加して実行する方法を見ておく。
今回はメニュー
今回は、メニューから好きなタイミングで任意に、スクリプトを実行します。
メニューで実行
メニューに登録して、任意のタイミングで実行。
function addCustomMenu(){
//メニューを追加
let my_menu = new Array();
my_menu.push({name:"ダミー", functionName: "menu_dummy"});
let s = SpreadsheetApp.getActiveSpreadsheet().addMenu("!!サンプル", my_menu);
}
メニューになる。
この関数を実行すると、メニューが生成され、いつでもスクリプトを実行できる。

起動後にメニューを生成
ドキュメントを開いたあとに、メニューを自動生成することもできる。
onOpen関数を定義すると、ドキュメントを開いた瞬間に実行される。onOpenは存在するだけで自動実行される。
function onOpen(){
addCustomMenu();
}
メニューを追加(別の方法)
先の方法は、ショートカット的な方法で、メニューを作るのは、こっちがGAS的に正統方法だと思う。
function onOpen(){
SpreadsheetApp.getUi().createMenu("!サンプル")
.addItem('アイテム1', "func_name")
.addItem('アイテム2', "func_name")
.addSeparator()
.addItem('アイテム3', "func_name")
.addItem('アイテム4', "func_name")
.addItem('アイテム5', "func_name")
.addSeparator()
.addSubMenu(
SpreadsheetApp.getUi()
.createMenu("アイテム6")
.addItem('アイテム6-1', "func_name")
.addItem('アイテム6-2', "func_name")
.addItem('アイテム6-3', "func_name")
)
.addSeparator()
.addItem('アイテム7', "func_name")
.addToUi()
}
メニューの上書き
同じ名前で登録すると上書きされるので注意。
続く
長いので分割しました。