Google Apps Scriptで作成した質問ボックスでのボタンクリック値を取得・活用する方法

サンプルコード

 

解説

この記事では以下のコードで質問ボックスを作成したことを前提に解説を進めていきます!

 

このプログラムをスプレッドシートで実行すると、このような質問ボックスが生成されるかと思います。

 

このコードの作成方法については以下の記事でご紹介しております。

 

alertメソッドなどで作成した質問ボックスで「はい」や「いいえ」などのクリック値を取得して、活用するには

 

  • 質問ボックスを生成するメソッドを変数に代入するコードを書く
  • 変数で取得した回答データを処理する

 

の2ステップを踏む必要があります。と言っても、それほど難しいものではありませんのでお気軽に読み進めてください。

また、以下の説明においては「SpreadsheetApp.getUi()」で取得したUiクラスのオブジェクトを変数uiに代入したものとして変数「ui」をたびたび利用していきますのでご認識お願いいたします。

 

質問ボックスから回答を得る方法

先述した質問ボックスを作成する方法をご紹介した記事の方でも軽く触れている内容になりますのでちょっと復習になるかもしれません。

 

alertメソッドはそのまま利用しても質問ボックスを生成することができるものとなりますが、そのコードを変数に代入するように記述することで、質問ボックスでクリックされたボタンの情報を変数から取得できるようになります。

 

先ほどのコードに変数responseで回答データを取得できるように変数に代入するコードを追記しました。

これで、例えば質問ボックスで「はい」をクリックされると変数responseに「はい」がクリックされた情報が格納されます。

 

変数で取得した回答データを処理する方法

さて、この回答データを処理してみましょう。「はい」、「いいえ」、「×」のどれがクリックされたかによって処理を分岐させるif文を書いてみましょう。

 

…あれ、うまくいきませんね。実は、responseに格納されるクリック情報は単なる「はい」や「いいえ」などの文字列データではなく、ButtonというGoogle Apps Scriptが専用で用意しているボタンクリックデータとなっています。

 

Buttonについての説明をするよりも実際にコードを見ていただいたほうがわかりやすいので、「はい」をクリックされた場合になんらかの処理を行なう場合のif文の例を以下に示します。

 

先ほど“はい”と書いていた箇所がui.Button.YESに変更になりました。これを直訳すると

uiクラスにButtonというButtonSetクリックデータを表す値を集めたライブラリがあり、その中の「YES(はい)」の値

となります。

 

同じように、「いいえ」をクリックされた場合の分岐を続けて書いていくと…

 

…と、このようにui.Button.NOで書き換えます。

このように、ButtonSetのプロパティ値を使って設置したボタンのクリックデータは、Buttonで用意されている値で変数に代入されており、比較演算子で判断する場合においてもButtonにある値を利用する必要があります‼

 

if文による分岐処理のコードを最後まで書くと以下のようになります。

 

最後のelse文は質問ボックスの「×」ボタンをクリックされた場合の分岐処理です。実は、「×」ボタンをクリックされた場合のクリックデータはButtonの値でui.Button.CANCELと表すことができます。。。が今回はelseでまとめちゃって大丈夫なので利用していません。

その他、Buttonについて詳しく知りたい場合には以下のリンクを参考にしてください。

 

さて、これで質問ボックスでの回答内容によって処理を分岐するif文を作成することができました‼

 

おわりに

以上が、alertなどで作成した質問ボックスで得たボタンクリック値を取得して、活用する方法となります。いかがだったでしょうか。

Google Apps Scriptで用意されているButtonSetとButtonを利用するということを押さえておけば、仮にボタンの設定値を変えたい!と思った場合にもボタンの設定やif文で比較演算を行う場合での値取得などを適切に行なうことができます。

 

alertButtonSetButtonはGoogle Apps Scriptでちょっとしたツールを実装するときに使う機会が多いものになります…特にGoogle スプレッドシートで何かを作る機会ってものすごく多いと思うのでかなり重宝されるのではないでしょうか。

メソッドの解説ページなども参考に色んなパターンを試してみて使いこなせるようにしてみてくださいね!

yoshi

JavaScript、Google Apps Scriptがメイン。Pythonもちょっとだけ。Google Apps Script開発、Pythonスクレイピングなどをする機会が多いです。ご依頼なども承っております。 記事内容についてのご意見・ご指摘などいただけますと幸いです。

シェアする

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

コメントする