[GAS]SpreadSheetにカスタムメニューを追加

Googleのスプレッドシートにカスタムメニューを追加する方法。
GoogleAppsScript(GAS)を利用する。

方法は2つあり、その違いを調べたメモ
A..getActiveSpreadsheet から .addMenu で追加
B..getUi から .addToUi で追加






実際に作成すると下記のようになる。

/*A.*/
function onOpen() {
var sheet = SpreadsheetApp.getActiveSpreadsheet();
var menuEntries = [];
menuEntries.push({name : "メール送信1件", functionName : "sendMail"});
menuEntries.push(null); // line separator
menuEntries.push({name : "メール送信全件", functionName : "sendEMails"});
sheet.addMenu("スクリプト実行", menuEntries);
};

/*B.*/
function onOpen(e) {
var ui = SpreadsheetApp.getUi();
ui.createMenu('スクリプト実行')
.addItem('メール送信1件', 'sendMail')
.addSeparator()// line separator
.addItem('メール送信全件', 'sendEMails')
.addSubMenu(SpreadsheetApp.getUi().createMenu('My Submenu')//サブメニュー
.addItem('メール送信1件', 'sendMail')
.addSeparator()// line separator
.addItem('メール送信全件', 'sendEMails'))
.addToUi();
}

B.はサブメニューまで作成できるくらいしか、機能面での違いは分からなかった。
サブメニューまで必要な事が無い限りは、どちらを使っても良さそうだ。

この記事へのコメント

この記事へのトラックバック