【GAS】スプレッドシートのメニュー追加・更新・削除機能まとめ【サンプルソース付】

快速ワーク
スポンサーリンク

GAS開発者向けにスプレッドシートのメニュー追加・更新・削除機能をすべてまとめました。

便利なマクロを作成して、スプレッドシートのメニューに任意の名前で追加し、呼び出すことができます。

使いこなせれば手軽に自分用の機能を使えるので作業効率が上がるのは間違いありません。

メニュー追加・更新・削除に関するメソッドをすべて載せてます。少しでも参考になれば幸いです。


Google Apps Script スプレッドシート 基礎 リファレンス

当ページは、GAS公式リファレンスを元にスプレッドシートの機能毎にまとめた基礎的な内容となっております。

若干、文言がおかしい可能性がありますが、あらかじめご了承ください。

 

GAS基本メソッドまとめ一覧はコチラ↓↓↓です。スプレッドシートの基本的な機能をまとめてますので、ぜひご活用ください。

【GAS】スプレッドシート基本メソッドまとめ一覧【初心者入門】
GAS開発者向けにスプレッドシートの基本的なメソッドを一覧にまとめました。各機能ごとのクラス、メソッドごとのサンプルソース付ページへリンクする一覧です。初心者にとって、スプレッドシートの基本的な操作・機能単位のメソッドを知...

 

まずは実際に動かしてみることをオススメします。マクロの登録方法は以下を参照いただければと思います。

【GAS】Googleスプレッドシートでマクロの使い方入門【動画付】
Googleの「Google Apps Script」通称GAS。GoogleマップやGメールなど、いろんなGoogle関連のサービスと自由に連携できたり、独自のWebアプリを開発することもできる、いろんな可能性を秘めたワクワクの...

 

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);
}
Parameters
名前タイプ説明
nameString作成するメニューの名前。
subMenusObject[]nameおよびfunctionNameパラメーターを持つJavaScriptマップの配列。 Library.libFunction1のような、含まれているライブラリの関数を使うことができます。

参照:Google Apps Script | REFERENCE | SpreadSheet | Class Spreadsheet | Methods | addMenu(name, subMenus)

メニュー更新[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);
}
Parameters
名前タイプ説明
nameString更新するメニューの名前。
subMenusObject[]nameおよびfunctionNameパラメーターを持つJavaScriptマップの配列。 Library.libFunction1のような、含まれているライブラリの関数を使うことができます。

参照:Google Apps Script | REFERENCE | SpreadSheet | Class Spreadsheet | Methods | updateMenu(name, subMenus)

メニュー削除[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(){
  // 何もしない
}
Parameters
名前タイプ説明
nameString削除するメニューの名前。

参照:Google Apps Script | REFERENCE | SpreadSheet | Class Spreadsheet | Methods | removeMenu(name)


最後に

GASメニュー追加・更新・削除機能のまとめをご紹介させていただきました。

必要に応じて、有益な情報でさらに更新していきたいと思います。

プログラミングスキルを向上させるためには、本を読むだけでは脳にインプットされませんね。

実際に手を動かしてアウトプットしまくるのが一番の近道だと思います。

実際にサンプルソースをコピーして実行した結果がどうなるかを体験してみてください。

自分なりのアレンジを加えたり、なぜエラーになるのかを考え、何度も試行錯誤して問題を解決しまくり、着実に理解しながらスキルを向上させていきましょう。

GASはExcelVBAとはかなり違いますが、ベースとなっているJavaScriptは覚えて損はないプログラミング言語なのでショートカットキーなどと組み合わせてぜひ活用してみてください。

Googleスプレッドシート全ショートカットキー一覧はこちら↓↓↓

Googleスプレッドシートの使い方や機能がわかるショートカットキー全まとめ一覧【初心者こそ必見】
表計算ソフトとして、まだまだExcelのシェア率は高いですが、GoogleスプレッドシートにはExcelにはない超強力な関数があったり、Excelとは違って常に最新版を無料で使用できます。なにより、インターネットを使ったオンライン...

ショートカットキー一覧にもGASメソッドを載せています。どの操作からどのメソッドが呼ばれるのかイメージしてください。




コメント