GASでスプレッドシートに階層メニューを追加する方法
お仕事
まいまい
こんにちは。今回は仕事でもよく使う Google Apps Script(GAS) について書いていきます✊🏻✨️
最近は社内業務の効率化や自動化の場面でGASを活用することが増えてきました。
プログラミング初心者でも取り組みやすいのが魅力なんですよね。

「階層メニュー」を追加する方法 です。
「スプレッドシートの上部に自分専用のメニューを作り、そこから必要な処理を呼び出せるようにする」というイメージです。
そもそもGASとは?
Google Apps Script(GAS)は、Googleが提供しているクラウド上で動くスクリプト言語です。
JavaScriptをベースにしているため、JavaScriptに触れたことがある方ならすぐに理解しやすいと思います。
例えば、こんなことができます。
スプレッドシートに入力されたデータを整理・加工する
Gmailのメールを自動で仕分けする
Googleカレンダーに予定を自動登録する
ChatやSlackなどに通知を送る
「ちょっとした作業を自動化できる」ので、業務効率化にピッタリなんです。 現在、つなぐるの代表もchatworkへRedmineからの新着メールを自動で送るという連携なども実装しています🌟今回やること:スプレッドシートに階層メニューを作る
Googleスプレッドシートを開くと、上部に「ファイル」「編集」「表示」などのメニューが並んでいますよね。
この並びに 自分専用のメニュー を追加できるのがGASの便利なところ。
さらにその中に「サブメニュー」を作ることで、整理されたメニュー構造にできます。
完成イメージはこんな感じです。
タブに出したい名称 ▼ ├ サブメニューに出したい名称1 └ サブメニューに出したい名称2
実際のコード
以下のスクリプトをスプレッドシートに書き込むと、階層メニューを作れます。
function onOpen() {
const ui = SpreadsheetApp.getUi();
// メインメニュー作成
const menu = ui.createMenu("タブに出したい名称");
// サブメニュー
const preMenu = ui.createMenu("メインメニュー1")
.addItem("サブメニューに出したい名称1", "動かしたい関数")
.addItem("サブメニューに出したい名称2", "動かしたい関数");
// メインメニューにサブメニューを追加
menu.addSubMenu(preMenu)
.addToUi();
}

ポイント解説
- onOpen()
-
この関数名は特別で、スプレッドシートを開いたときに自動で実行されます。
つまり、毎回手動でコードを走らせなくても「シートを開いた瞬間にメニューが追加される」わけです。 - SpreadsheetApp.getUi()
-
これは「ユーザーインターフェイス(UI)」を操作するための命令です。
ここから .createMenu() を呼び出すことで、新しいメニューを作成できます。 - addItem(“表示名”, “関数名”)
-
実際にメニューからクリックされたときに、どの関数を呼び出すかを指定しています。
“動かしたい関数” の部分には、別で作った処理用の関数名を書きます。
実際に関数を追加してみよう
例えば、以下のような関数を別で用意しておけば、クリックしたときに動作します。
function helloWorld() {
SpreadsheetApp.getActiveSpreadsheet()
.getActiveSheet()
.getRange("A1")
.setValue("Hello GAS!");
}
この関数を addItem(“挨拶を表示”, “helloWorld”) のように紐づければ、メニューをクリックするとA1セルに「Hello GAS!」と表示される仕組みです。
階層メニューを使うメリット
- 複数のスクリプトを整理して使える
- ワンクリックで処理を呼び出せるので時短
- スプレッドシートを共有しているメンバーにも同じメニューが表示される
特に、社内で定型作業をみんなが繰り返す」ような場面ではとても役立ちます。
まとめ
今回は、GASを使ってスプレッドシートに「階層メニュー」を追加する方法を紹介しました。
プログラミングに慣れていない人でも、ほんの数行コードを書くことで、日々の業務がグッと効率化されるのが魅力です。
次回はさらに実践的な内容として、「GASでCSV出力をする方法」 をご紹介します。
スプレッドシートのデータを一発でCSVファイルに書き出せると、業務の幅が広がりますのでお楽しみに!