GASでメニューにスクリプトを追加する
スプレッドシートで、毎回手動で実行するGASのスクリプトがある場合は、ひとつの方法として「メニューに追加」すると便利です。
![](https://eguweb.jp/wp-content/uploads/スクリーンショット-2022-11-07-19.22.57-1024x373.jpg)
追加してみます。
.getUi()
まずは、onOpenを使って、ファイルを開いたときのイベントハンドラを設定します。こうすることで、スプレッドシートを開いた時に自動的にメニューが追加されます。
.getUi()を使うことで、Uiクラス(メニューを作るようなクラス)が取得できます。
SpreadsheetApp.getUi();
あとは「createMenu」を使ってメニューを追加、addItemで下にマウスオーバーで表示されるメニュー、最後にaddToUiで追加できます。
![](https://eguweb.jp/wp-content/uploads/202211072014-00-1024x280.jpg)
[rml_read_more]
function onOpen() {
const customMenu = SpreadsheetApp.getUi();
customMenu.createMenu('スクリプト').addItem('メニュー作成', 'get_sheetURL').addToUi();
}
メニューにスクリプトが追加される
メニューにスクリプトが追加されました。
![](https://eguweb.jp/wp-content/uploads/202211072015-00.jpg)
実行してみます。
![](https://eguweb.jp/wp-content/uploads/202211072015-01-1024x249.jpg)
実行できました!
![](https://eguweb.jp/wp-content/uploads/202211072016-00-1024x193.jpg)
もしメニューを下に追加したい場合は、.addItem(‘アイテム2’, ‘onClickItem2’);を使って追加していくことができます。
menu.addItem('スクリプト1', 'onClickScript1');
menu.addItem('スクリプト2', 'onClickScript2');
menu.addSeparator();
.addSeparator();で区切り線を作ることができるようになっています。便利ですね。
まとめ
手動でよく実行するGASのスクリプトがあれば、.getUi()を設定しておくと便利です。
御参考ください。