GAS開発者向けにスプレッドシートのメニュー追加・更新・削除機能をすべてまとめました。
便利なマクロを作成して、スプレッドシートのメニューに任意の名前で追加し、呼び出すことができます。
使いこなせれば手軽に自分用の機能を使えるので作業効率が上がるのは間違いありません。
メニュー追加・更新・削除に関するメソッドをすべて載せてます。少しでも参考になれば幸いです。
Google Apps Script スプレッドシート 基礎 リファレンス
当ページは、GAS公式リファレンスを元にスプレッドシートの機能毎にまとめた基礎的な内容となっております。
若干、文言がおかしい可能性がありますが、あらかじめご了承ください。
GAS基本メソッドまとめ一覧はコチラ↓↓↓です。スプレッドシートの基本的な機能をまとめてますので、ぜひご活用ください。
まずは実際に動かしてみることをオススメします。マクロの登録方法は以下を参照いただければと思います。
GASの本はまだまだ少ないですね。基礎レベルであれば、以下の参考書が初心者にはベストの本です。
基本的な仕様やよく使われる機能の設定方法がまとまっています。
※JavaScriptの知識が既にある程度ある人にとっては冗長かもしれません。
スプレッドシートクラス[Spreadsheet]のメニュー追加・更新・削除
スプレッドシートのメニュー追加・更新・削除メソッドです。
メニュー追加[addMenu(メニュー名, サブメニュー)]
addMenu(name, subMenus)
スプレッドシートUIに新しいメニューを作成します。
各メニュー項目は、ユーザー定義機能を実行します。通常は、スプレッドシートが読み込まれたときにメニューが自動的に作成されるように、onOpen()関数から呼び出します。
// スプレッドシートがロードされるたびにonOpen関数が自動的に実行されます
function onOpen() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var menuEntries = [];
// ユーザーが「addMenuExample」をクリックしてから
// 「Menu Entry 1」をクリックすると、関数function1が実行されます。
menuEntries.push({name: "Menu Entry 1", functionName: "function1"});
menuEntries.push(null); // 行区切り
menuEntries.push({name: "Menu Entry 2", functionName: "function2"});
ss.addMenu("addMenuExample", menuEntries);
}
名前 | タイプ | 説明 |
---|---|---|
name | String | 作成するメニューの名前。 |
subMenus | Object[] | nameおよびfunctionNameパラメーターを持つJavaScriptマップの配列。 Library.libFunction1のような、含まれているライブラリの関数を使うことができます。 |
メニュー更新[updateMenu(メニュー名, サブメニュー)]
updateMenu(name, subMenus)
addMenu(name, subMenus)によって追加されたメニューを更新します。 addMenu(name, subMenus)とまったく同じように機能します。
function updateMenuSample() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var menuEntries = [];
menuEntries.push({name: "Lone Menu Entry", functionName: "function1"});
ss.updateMenu("addMenuExample", menuEntries);
}
名前 | タイプ | 説明 |
---|---|---|
name | String | 更新するメニューの名前。 |
subMenus | Object[] | nameおよびfunctionNameパラメーターを持つJavaScriptマップの配列。 Library.libFunction1のような、含まれているライブラリの関数を使うことができます。 |
メニュー削除[removeMenu(メニュー名)]
removeMenu(name)
addMenu(name, subMenus)によって追加されたメニューを削除します。 name引数は、addMenu(name, subMenus)への対応する呼び出しと同じ値を持つべきです。
// スプレッドシートがロードされるたびにonOpen関数が自動的に実行されます
function removeMenuSample_onOpen() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
ss.addMenu("badMenu", [{name: "remove bad menu", functionName: "removeBadMenu"},
{name: "foo", functionName: "foo"}]);
}
function removeBadMenu() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
ss.removeMenu("badMenu"); // nameはメニューを追加したときに使用した名前と一致しなければなりません
}
function foo(){
// 何もしない
}
名前 | タイプ | 説明 |
---|---|---|
name | String | 削除するメニューの名前。 |
参照:Google Apps Script | REFERENCE | SpreadSheet | Class Spreadsheet | Methods | removeMenu(name)
最後に
GASメニュー追加・更新・削除機能のまとめをご紹介させていただきました。
必要に応じて、有益な情報でさらに更新していきたいと思います。
プログラミングスキルを向上させるためには、本を読むだけでは脳にインプットされませんね。
実際に手を動かしてアウトプットしまくるのが一番の近道だと思います。
実際にサンプルソースをコピーして実行した結果がどうなるかを体験してみてください。
自分なりのアレンジを加えたり、なぜエラーになるのかを考え、何度も試行錯誤して問題を解決しまくり、着実に理解しながらスキルを向上させていきましょう。
GASはExcelVBAとはかなり違いますが、ベースとなっているJavaScriptは覚えて損はないプログラミング言語なのでショートカットキーなどと組み合わせてぜひ活用してみてください。
Googleスプレッドシート全ショートカットキー一覧はこちら↓↓↓
ショートカットキー一覧にもGASメソッドを載せています。どの操作からどのメソッドが呼ばれるのかイメージしてください。
コメント