スプレッドシート上の図形描画したボタンでGoogle Apps Script(GAS)を実行する方法

2020年8月9日

Google Apps Script(GAS)で作成したスクリプトをスプレッドシート上でボタンを押して実行できるようにする方法を解説します。

ボタンのクリックをトリガーにして、GASのプログラムが実行され、スプレッドシートの処理が可能になります。

 スプレッドシート上でGASスクリプトを実行したい

スプレッドシート上のデータを処理するGoogle Apps Script(GAS)のスクリプトを作成しても、わざわざスクリプトエディタから実行するのは手間がかかります。

メニュー「ツール」から「スクリプトエディタ」を選択し、スクリプトエディタのウィンドウを立ち上げ、実行した関数を選択・実行する必要があります。

GASを使っている人であれば難易度は低いですが、スプレッドシートだけ使っている人には難しい作業です。

「変なところを操作して、壊したらどうしよう?」

と不安に駆られる人もいます。

そうした一般ユーザーにも使ってもらいたい場合には、スプレッドシート上の操作でGASのスクリプトを動かせるようにしてあげる必要があります。

図形描画で作成したボタンにGASスクリプトを割り当て

スプレッドシート上の操作でGoogle Apps Script(GAS)のスクリプトを実行する方法として、ボタン実行があります。

この方法は図形描画機能を使って作成したボタンにGASスクリプトを割り当てることで、ボタンを押すとスクリプトが実行される仕組みとなっています。

スプレッドシート上に図形描画してボタンを設置して、Google Apps Scriptのスクリプトを実行可能

このGAS実行方法は利用者にとって大きなメリットです。

ボタンなら押すというのが直感的で分かりやすく、実行にかかる手間もワンクリックで済みます。

スプレッドシートのボタン押下→GAS実行の設定方法

スプレッドシートに図形描画したボタンを配置し、そのボタンを押すと、Google Apps Script(GAS)のスクリプトが実行されるように設定する方法を解説します。

1.スプレッドシートのメニューバーにある「挿入」をクリックし、「図形描画」を選択します。

スプレッドシートのメニュー「挿入」から「図形描画」を選択する

2.図形描画の画面で赤枠の図形アイコン→図形からボタンに使いたい図形を選択します。

図形描画の画面が立ち上がると、ボタンとなる図形を選択する

3.選択した図形を描画したあと、ボタンに書き込む文字を設定し、「保存して終了」をクリックします。

図形描画で選択した図形にGAS実行がわかりやすいように文字を設定する

4.スプレッドシート上にボタンが生成されるので、配置したい場所に移動させます。

スプレッドシート上に挿入されたボタンの位置を調整する

5.ボタンを右クリックすると表示される「︙」をクリックし、「スクリプトを割り当て」を選択します。

スプレッドシートの図形描画したボタンを右クリック、メニューアイコンをクリックし、「スクリプト割り当て」を選択

6.割り当てたいGASスクリプトの関数名を入力します。

Google Apps Scriptをスプレッドシートにあるボタンにスクリプトを割り当てて実行する

※関数の入力では引数の指定はできません。

以上の6Stepでスプレッドシート上に配置したボタンからGASスクリプトの関数が実行可能となります。

スプレッドシートで図形描画したボタンからGASを実行

前述の図形描画したボタンへのGoogle Apps Scriptのスクリプト割り当てが完了したあと、実際にボタンを押下してGASが実行されるか試してみます。

ボタンを押すと初回実行の際は許可を求める「承認が必要」のメッセージが表示されます。

GASスクリプトの初回実行時には、権限の承認が必要で求められる

※初回実行時の承認メッセージの対応手順は以下の記事で解説

Google Apps Script(GAS)入門 初回コード実行時の承認・許可方法を解説【図説】

このあと表示されるメッセージに回答し、許可を行ったあと、GASスクリプトが実行されます。

スプレッドシートのボタンから実行し、実行した結果正常にスクリプト関数の処理が実行された結果

GASのスクリプトではA1セルに「ボタンが押されました」と表示される関数を指定しましたが、見事実行されています。

もし、図形描画したボタンでのスクリプト割り当てが誤っていると、以下のような「問題が発生しました」ボタンが表示されます。

図形描画したボタンへのスクリプト割り当てが誤っている場合には「問題が発生しました」というエラーメッセージが表示される

設定したスクリプト関数が見つからないとのメッセージなので、こちらが表示された場合には、再度設定を見直します。

GASプログラムのボタン実行の前提条件

Google Apps Script(GAS)で書いたスクリプトをスプレッドシート上のボタンを押して実行するためには条件があります。

GASのスクリプトがスプレッドシートに紐づくコンテナバインド型であることが必要です。

スタンドアロン型の場合、スプレッドシートからはGASのスクリプトが参照できないため、ボタンに紐づけても実行できません。

そのため、スプレッドシート上にボタンを設置してGASプログラムを実行したい場合は、コンテナバインド型で作成しなければなりません。

※コンテナバインド型とスタンドアロン型のGASの違いは下記の記事で解説しています。

Google Apps Script入門〜スタンドアロン型とコンテナバインド型の比較と解説

ボタンの押し間違い対処方法

Google Apps Script(GAS)のボタン押下による実行には注意点があります。

スプレッドシート上でボタンの押し間違いによる誤実行です

これまでGASで作ったツールを業務で使っていますが、誤実行は必ず起きています。

それに対応するための対策ですが、スプレッドシートのデータを書き換えるスクリプトなら、誤実行しても「元に戻す(Carl+z)」で元の状態に復元できます。

しかし、メールを送信するといった処理の場合、誤ってボタンを押して実行されるとメール送信され、こちらはリカバリーができません。

そうした誤操作によるミスを防ぐために、「実行確認のメッセージ表示」をGASのコードに組み込むのがおすすめです。

スプレッドシートの図形描画したボタンでのGASスクリプト実行で、ご実行を防ぐために確認メッセージを表示するサンプルコード

Browser.msgBoxメソッドでOK/キャンセルの応答を受け、OKが押されたときだけ、処理が実行されるようにif文で制御します。

スプレッドシートの図形描画したボタンで誤実行を防ぐための確認プロンプトを表示させる

スプレッドシート上でポップアップメッセージが表示され、「OK」を押すとスクリプトを実行、「キャンセル」すると実行しません。

こうしてユーザーに意図した実行か確認を1回挟むことで、GAS誤実行のミスを減らすことができます。

まとめ・終わりに

今回、Google Apps Script(GAS)のスクリプトを、スプレッドシート上でボタンを押すと実行できるようになる方法を紹介しました。

図形描画で作成したボタンに実行したいGASスクリプトを割り当てておけば、1クリックで実行可能です。

ボタンには文字ラベルも設定できるので、どういったタイミングで実行するか説明書きを入れることができます。

一般ユーザーとって難しいGASのスクリプトをわかりやすく、実行が可能です。

GASで作ったスプレッドシート用スクリプトを、多くユーザーに実行してもらう場合はボタン実行がベストなので、ぜひ活用ください。