![見出し画像](https://assets.st-note.com/production/uploads/images/97131631/rectangle_large_type_2_f235d32cd79e0a4331d5fbce51a9c8cb.png?width=1200)
SpreadsheetからGASを実行する話。
お疲れ様です。
ライフマップ開発チームの大城です。
本日は、SpreadsheetからGASの関数を実行する方法を書きたいと思います。
よかったらメール送信機能と合わせて使ってみてください。
↓↓↓メール送信機能の記事はこちら↓↓↓
この記事では、以下の4つを行いたいと思います。
Spreadsheetを新規作成する
GASを新規作成する
GASでダイアログを表示する関数を作成する
GASでスプレッドシートにメニューを追加する
スプレッドシートから関数を実行する
先に完成したものを載せておきます。
https://docs.google.com/spreadsheets/d/1xLgO4WoxGHBv2CpwB5EAjMTXCn9Ro8vAoKJiSw6GRlU/edit#gid=0
// スプレッドシートにメニューを追加する
function onOpen() {
var ui = SpreadsheetApp.getUi();
var menu = ui.createMenu('テスト');
menu.addItem('GASの関数を実行する', 'execute_popup_dialog_1');
menu.addToUi();
}
// ----- 関数を実行する ----- //
function execute_popup_dialog_1() {
var message = "実行しました!";
Browser.msgBox(message);
}
Spreadsheetを新規作成する
新しくスプレッドシートを作成しましょう。
特に何か書く必要はありません。
![](https://assets.st-note.com/img/1675409617843-Vbup7cyOnX.png?width=1200)
GASを新規作成する
スプレッドシートのメニュー『拡張機能>Apps Script』をクリックします。
![](https://assets.st-note.com/img/1675409711990-5cSOT4OjNN.png?width=1200)
すると、新しくGASが作成されます。
![](https://assets.st-note.com/img/1675409827323-LdeEHdgKcv.png?width=1200)
GASでダイアログを表示する関数を作成する
関数を作成する
スプレッドシートから関数を実行するテスト用の関数を作成します。
Browser クラスの msgBox メソッドを使ってメッセージを表示しましょう。
// ----- 関数を実行する ----- //
function execute_popup_dialog_1() {
var message = "実行しました!";
Browser.msgBox(message);
}
# Browser
Google スプレッドシート固有のダイアログ ボックスにアクセスできます。
# msgBox
ダイアログ ボックスが開き、指定したメッセージと [OK] ボタンがユーザーのブラウザに表示されます。
GASでスプレッドシートにメニューを追加する
スプレッドシートのメニューを作成する
後ほど、スプレッドシートを開いたタイミングでこれから追加する関数を実行するので、関数の名前を『onOpen』にします。
// スプレッドシートにメニューを追加する
function onOpen() {
}
SpreadsheetApp クラスの getUi メソッドを使って、スプレッドシートのメニューを操作する為のUI(UI インスタンス)を作成します。
// スプレッドシートにメニューを追加する
function onOpen() {
var ui = SpreadsheetApp.getUi();
}
# SpreadsheetApp
Google スプレッドシート ファイルにアクセスして作成する。
# getUi
スクリプトがメニュー、ダイアログ、サイドバーなどの機能を追加できるようにするための、スプレッドシートのユーザー インターフェース環境のインスタンスを返します。
そして、UI の createMenu メソッドを使ってスプレッドシートにメニューを追加(Menu インスタンス)します。
// スプレッドシートにメニューを追加する
function onOpen() {
var ui = SpreadsheetApp.getUi();
var menu = ui.createMenu('テスト');
}
# UI
メニュー、ダイアログ、サイドバーなどの機能をスクリプトで追加できるようにする、Google アプリのユーザー インターフェース環境のインスタンス。
# createMenu
エディタのユーザー インターフェースにメニューを追加するために使用できるビルダーを作成します。
最後に、作成したメニューの addItem メソッドを使って項目を作成し、 addToUi メソッドでメニューに追加します。
// スプレッドシートにメニューを追加する
function onOpen() {
var ui = SpreadsheetApp.getUi();
var menu = ui.createMenu('テスト');
menu.addItem('関数を実行する', 'execute_popup_dialog_1');
menu.addToUi();
}
# Menu
Google アプリのユーザー インターフェースのインスタンスにあるカスタム メニュー。
# addItem
メニューにアイテムを追加します。
# addToUi
エディタのユーザー インターフェースのインスタンスにメニューを挿入します。
スプレッドシートにメニューを追加する
スプレッドシートにメニューを追加するには、先ほど作成した関数を実行しなければいけません。
GASのトリガー機能を使って実装しましょう。
まずはトリガー設定画面を開いてください。
![](https://assets.st-note.com/img/1675415133299-cAGXykt364.png?width=1200)
以下の内容でトリガーを作成してください。
![](https://assets.st-note.com/img/1675415183286-abhzGVXXoC.png?width=1200)
実行する関数を選択
→onOpen事項するデプロイを選択
→Headイベントのソースを選択
→スプレッドシートからイベントの種類を選択
→起動時
トリガーを追加したら、スプレッドシートを再読み込みしてください。
メニューが作成されていると思います。
![](https://assets.st-note.com/img/1675415357140-LsXgLjNO0S.png?width=1200)
スプレッドシートから関数を実行する
早速スプレッドシートに追加されたメニューを実行してみましょう。
ダイアログが表示されれば成功です!
![](https://assets.st-note.com/img/1675415476769-Iss8rGHNRj.png?width=1200)
お疲れ様でした!
最後に
GASの処理をスプレッドシートから実行できるようになれば、いちいちGASを開く必要がなくなるので便利です。
ダイアログで実行確認 → OKであれば実行、CANCELであれば終了、などもできるので、公式リファレンスを参考に色々やってみてください。
もし難しければ、自分にわかる範囲で教える事もできるので、お気軽にコメントください〜。
ではまた次回、大城でした!