前回の続き
前回までで、一通り実行ができるようになったので、他人に使ってもらうためにメニューに追加して実行する方法を見ておく。
今回はメニュー
今回は、メニューから好きなタイミングで任意に、スクリプトを実行します。
メニューで実行
メニューに登録して、任意のタイミングで実行。
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() }
メニューの上書き
同じ名前で登録すると上書きされるので注意。
続く
長いので分割しました。