Google Apps Script(GAS)で便利なツールを作ったものの、実行するたびにスクリプトエディタを開くのが面倒だと感じていませんか?そんな悩みを解決するのが、スプレッドシートのメニューバーに独自の操作メニューを追加する方法です。
この記事では、プログラミング初心者の方でもコピペで実装できる「カスタムメニューの作成方法」を分かりやすく解説します。この記事を読めば、あなたのスプレッドシートが、まるで専用アプリのような使い心地に生まれ変わりますよ。
なぜスプレッドシートにカスタムメニューが必要なのか
スクリプトを実行する方法はいくつかありますが、カスタムメニュー(メニューバーへの追加)は、「自分以外の人も使うツール」を作る際に最も効果を発揮します。
一般的に、スプレッドシート上に「図形」でボタンを作る方法も有名ですが、実はカスタムメニューには特有のメリットがあります。まずは、その違いを表で確認してみましょう。
| 機能 | カスタムメニュー(今回紹介) | 図形ボタン |
|---|---|---|
| 見た目の美しさ | 標準機能に馴染み、画面がスッキリする | シート上に配置するため、少し邪魔になる |
| 複数機能の管理 | サブメニューで整理可能 | ボタンが増えるほどシートが埋まる |
| 誤操作の防止 | セルの編集や削除に影響されない | 行や列の削除でボタンが歪むことがある |
| スマホ対応 | ブラウザ版なら表示・実行が可能 | アプリ版・ブラウザ版共に反応しない |
私自身の経験からも、「せっかく作ったツールが、ボタンが邪魔だと言われて使われなくなった」という悲しい事態を避けるためには、メニューバーへの集約がベストな選択だと確信しています。
カスタムメニューを作成する基本コード(コピペOK)
それでは、実際にメニューを作成してみましょう。スプレッドシートの「拡張機能」から「Apps Script」を開き、以下のコードを貼り付けてください。
function onOpen() {
const ui = SpreadsheetApp.getUi();
// メニューのタイトルを設定
ui.createMenu('★カスタム操作')
.addItem('データを更新する', 'myFunction1') // 表示名と実行する関数名
.addSeparator() // 区切り線
.addSubMenu(ui.createMenu('高度な設定')
.addItem('ログを削除', 'myFunction2'))
.addToUi();
}
function myFunction1() {
Browser.msgBox("データを更新しました!");
}
function myFunction2() {
Browser.msgBox("ログを削除しました。");
}
コードのポイント解説
- onOpen():スプレッドシートを開いた瞬間に自動で実行される特別な関数です。
- createMenu():メニューバーに表示される名前を決めます。目立つように「★」などを入れるのがおすすめです。
- addItem():左側に「メニューに表示する名前」、右側に「実行したい関数名」を記述します。
- addSeparator():メニュー内に境界線を引き、視覚的に整理できます。
カスタムメニューを反映させる3つのステップ
コードを書いただけでは、まだメニューバーに変化はありません。以下の手順で反映させましょう。
- コードを保存する:エディタ上部の「プロジェクトを保存(フロッピーディスクのアイコン)」をクリックします。
- シートを再読み込みする:ブラウザの更新ボタン(F5キーなど)を押して、スプレッドシートを読み込み直します。
- 権限を承認する:初めて実行する場合、Googleから「承認」を求められるので、画面の指示に従って許可してください。
これで、メニューバーの「ヘルプ」の右側に新しいメニューが出現しているはずです!
初心者が躓きやすいポイントと対策
実装がうまくいかない場合、以下の2点をチェックしてみてください。
- 関数名が一致しているか:addItemで指定した名前と、実際に動かしたい関数名(function ◯◯)が1文字でも違うと動きません。
- 権限不足:会社の組織アカウントなどで制限がある場合、カスタムメニューが表示されないことがあります。その場合は管理者に確認しましょう。
よくある質問(FAQ)
Q. スマホアプリからでもメニューは使えますか?
残念ながら、Googleスプレッドシートのスマホアプリ版では、カスタムメニューは表示されません。スマホから実行したい場合は、ブラウザ(Chrome等)で「PC版サイトを表示」にして開く必要があります。
Q. メニューの順番を一番左に持ってくることはできますか?
Googleの仕様上、カスタムメニューは必ず標準メニュー(表示、挿入、ツールなど)の右側に配置されます。場所を固定することはできませんが、右端にある方が「後から追加した便利な機能」として見つけやすいですよ。
Q. スクリプトを変更したのにメニューが変わりません。
カスタムメニューの定義を変更した後は、必ずスプレッドシートを再読み込みする必要があります。保存しただけでは反映されない点に注意してください。
まとめ:ワンクリックで快適な自動化ライフを
スプレッドシートにカスタムメニューを追加するだけで、「スクリプトを探す手間」がゼロになり、作業スピードは格段に上がります。特にチームでシートを共有している場合、このひと手間で「使いにくい」という不満を解消できるはずです。
まずは今回紹介したコードをコピーして、実際に動く感動を味わってみてください。次は、あなたが普段手動で行っている「データの転記」や「PDF化」を関数にして、メニューに登録してみましょう!
さあ、今すぐスクリプトエディタを開いて、自分専用の最強メニューを作ってみませんか?


