【GAS】Google スプレッドシートに独自のメニューを追加しGASの関数を呼び出す方法
こんにちは、まきのです。
今回はGAS関数の実行方法について少し説明します。
Google スプレッドシートを便利にしようとしてGASを組んだはいいものの、毎回GASのScriptエディタから関数を実行するのは手間ですよね。
そこで、スプレッドシートに独自メニューを追加してGASの関数を実行する方法をご紹介します。
こんな感じに
スプレッドシート作成
まずはボタンを追加したいスプレッドシートを作ります。Google Driveを開き[+新規]>[Google スプレッドシート]>[空白のスプレッドシート]を選択します。
スプレッドシートを開いたら、メニューの[ツール]>[スクリプトエディタ]を押下し、Scriptエディタを開きます。
コード作成
準備ができたらコードを書いていきます。- onOpen関数でSpreadSheetを開いたときにメニューが作成されるようにする
- addMenu関数でメニューを定義し、メニューと関数を紐づける
- メニューと紐づけた関数の処理を記述していく
コード.gs
function onOpen() { // onOpen関数でスプレッドシートを開いたときにメニューが作成されるようにする SpreadsheetApp .getActiveSpreadsheet() .addMenu('メニュー', [ //addMenu関数でメニューを定義し、メニューと関数を紐づける {name: 'ボタン1', functionName: 'func1'}, {name: 'ボタン2', functionName: 'func2'} ]); } function func1() { //メニューと紐づけた関数の処理を記述していく //ボタン1が押されたときに呼び出される関数 Browser.msgBox("ボタン1が押されました。"); } function func2() { //メニューと紐づけた関数の処理を記述していく //ボタン2が押されたときに呼び出される関数 Browser.msgBox("ボタン2が押されました。"); }
実行方法
ソースが書き終わったら、一度スクリプトエディタ上でonOpen関数を実行します。するとスプレッドシートを再読み込みしたときにメニューに独自に定義したメニューが追加されています。
押してみると、それぞれを押したときの関数が実行されると思います。
解説と注意点
onOpen
onOpen関数は、スプレッドシートを開いたときに実行されるイベントハンドラです。イベントハンドラは何らかのイベントが発生したタイミングに実行してくれる機能です。
スプレッドシートをリロードするたびにonOpen関数が実行されます。
addMenu
メニューを追加するときには、SpreadsheetオブジェクトのaddMenu関数を使います。引数には、メニュータイトル, 追加するメニューの配列を指定します。
メニュータイトルはスプレッドシートのファイルとか編集とかその並びですね。
追加するメニューの配列は {name: 'メニュー名', functionName: '関数名'}という形で、複数指定する場合はカンマ( , )区切りで配列の[]で囲って指定します。
複数メニューの間にnullを挟むと区切り線が表示されるようです。
まとめ
SpreadSheetに独自メニューを追加してGASの関数を実行する方法をご紹介しました。これでいちいちGASのScriptエディタを開かなくても関数を実行できるようになりました。
メニュー名やメニューの数などは目的に応じて変えてみましょう。
今回は関数には何も指定をしていませんが、作りこみ次第でスプレッドシートに書き込まれたメールアドレス一覧にまとめてメールを送る。とか、
カレンダーの予定一覧をリスト化するとか、特定のメールの内容を抽出するとかとか様々なことに応用が利くと思います。
- 【GAS】Google Apps Scriptとは - だって楽したいじゃんか!
- 【GAS】無料!!30分で作れるLINEチャットボット - だって楽したいじゃんか!
- 【GAS】人工知能APIを使って自然な返答をするLINEチャットボットを作ってみる【LINE】 - だって楽したいじゃんか!
- 【GAS】LINE Front-end FrameworkをGASで作ったWebアプリと連携させたらうまくいかなかった話【LIFF】 - だって楽したいじゃんか!
- 【GAS 】簡易サーバーレスWebアプリを作る①Hello World - だって楽したいじゃんか!
- 【GAS】定期的に特定条件のメールを抽出し転送する方法 - だって楽したいじゃんか!