【prompt】スプレッドシート等でテキスト入力ボックスを生成する

GoogleAppsScript

【prompt】メソッドは

Google スプレッドシート等の画面上でテキスト入力ボックスを生成するメソッド

です。

 

公式リファレンスの該当ページはこちら

 

また、類似のメソッドとして、簡易なダイアログボックスを表示させることができるalertメソッドもあります。詳細についてはalertのページでまとめてあります。

 

クラス

【Uiクラス】

Google スプレッドシート、Google ドキュメント、Google スライド、Google フォームのサービスでContainer bound Scriptでのスクリプトファイルでプログラミングをしている場合のみ、

SpreadsheetAppクラスなど各サービスの一番親となるクラスオブジェクトに対してgetUiメソッドを利用することでUiクラスを取得できます。

 

UiクラスについてはgetUiメソッドのページでも詳しく解説しております。

 

記述方法

promptメソッドには引数の数によって記述方法が3種類に分類されます。

Uiクラスのメソッドであるため、Uiクラスのオブジェクトに対してpromptメソッドを書く点については3つとも同じです。

 

また、この記述パターンは同じUiクラスのメソッドであるalertメソッドと同じになるため、一緒にセットで覚えるとおトクです。

 

prompt(prompt)

 

こちらは引数をpromptのひとつだけを記入したらOKのpromptメソッドの一番基本の記述方法です。

引数名もpromptでややこしいですが、こちらに入力した内容は表示されるダイアログボックスに記載される説明文となります。

 

下記はprompt(“promptテスト”)と記載した場合に表示されるダイアログボックスの例となります。

 

prompt(prompt, buttons)

次に記述方法その2です。こちらのパターンでは引数がpromptとbuttonsの2つに増えます。

引数promptに入力する内容とその効果は記述方法その1と同じです。ここでは引数buttonsについてご説明いたします。

 

引数buttonsにはGoogle Apps Scriptが提供している設定値を入力することでアラート通知で表示するボタンを変更することができます。

この、Google Apps Scriptが提供している設定値ですが、ButtonSetというEnum(※利用できる設定値の集まりのこと)で用意されており、以下のGoogle Apps Scriptのリファレンスページに詳細が記載されています。

 

promptで利用ができるButtonSetの値とそれを入力することにより表示されるボタンの値を下記の表にまとめました。(※日本語版での表示内容です。当然ですが、設定言語により表示される値は違います)

入力値 表示される値
OK 「OK」
OK_CANCEL 「OK]「キャンセル」
YES_NO 「はい」「いいえ」
YES_NO_CANCEL 「はい」「いいえ」「キャンセル」

 

また、ButtonSetで入力された値はButtonというEnumなどと組み合わせて判定して、次のプログラムを動かすための判断基準として利用することが可能です。

詳しくは下図のButtonの記事にまとめてありますので参考にしてみてください。

 

下図は引数promptに”promptテスト”、引数buttonsに”YES_NO”を設定した場合のダイアログボックスの例です。

 

ただし、promptメソッドでは入力フォームが付帯しておりますので、alertメソッドで利用する場合と比べると引数buttonsを活用できる場面はかなり限定されると思います。一応使えますよ、程度で覚えておくと良いかもしれません。

 

prompt(title, prompt, buttons)

最後はさらに引数titleが追加される記述方法その3です。

引数titleに値を設定することで、その値がアラート通知の左上に太字で表示されます。その他の引数prompt、buttonsはこれまでご説明した内容と同様です。

 

下図は引数titleに”promptテスト”、引数promptも”promptテスト”、引数buttonsに”YES_NO”を設定した場合のダイアログボックスの例です。

 

戻り値

【promptResponse】

promptメソッドを利用することでテキストダイアログボックスを生成することができる…だけでなく、そこに入力されたデータ値やボタンのクリック情報をも取得することができます。

かなり簡潔にご紹介するならば、それらの入力情報がまとめられたものがpromptResponseオブジェクトです。

 

promptReaponseオブジェクトはpromptメソッドが書かれたコードを変数に格納することで取得することができます。

取得したpromptResponseオブジェクトからテキスト入力情報やボタンのクリック情報を取り出すには、それぞれgetResponseTextgetSelectedButtonのメソッドを利用する必要があります。

それぞれのメソッドについて解説したページがありますので是非参考にしてみてください。

使用例

入力したメールアドレス宛にスプレッドシートから生成したPDFを添付して送信する機能

スプレッドシートで作成した資料や見積書などをPDF化してメールで送信する機会はそこそこあるのではないでしょうか?

でも、いちいちPDF化して、ダウンロードして、メールで送信して…ってものすごくめんどくさい!

ですので、入力したメールアドレス宛に勝手にメールを送信してくれる機能を設置しましょう!もちろん、PDF化も自動化してあります!

 

※…まぁ、PDF化してメール送信機能はスプレッドシートに標準機能として備わって入るんですけどね(^_^;)笑

送信内容などがあらかじめ決まっているのであれば、こちらの方法でメッセージを設定してしまったほうが文章作成の時間が短縮されますのでオススメです!

 

このコードを実行すると、まずこのように送信先のメールアドレスの入力を求められます。こちらはpromptメソッドで実装しております。

メールアドレスを入力して「OK」をクリックすると、スプレッドシートのデータをPDFに変換し添付したメールを送信してくれます。

 

もし、メールアドレスの入力がなかった、「×」をクリックされた場合にはこのようにメールアドレスの入力がなかったという通知が出てメールが送信されません。

こちらはalertメソッドで実装しております。

 

promptで受け取ったテキストの入力値がメールアドレスなのかどうかを正規表現などで確認するコードも入れておくとより良いプログラムになるでしょう。

関連メソッド

以下のメソッドも確認しておくと、よりpromptを活用することが可能です。(後日追加予定)

yoshi

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

シェアする

コメントを残す

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

コメントする