エンジニアはこわくない

好きなように書く

GAS(google app script)でポップアップを表示させる方法


スポンサーリンク

f:id:tsujitaku50:20170117213517p:plain

こんにちは、つじたく(@Tsuji_Taku50)です。

GAS(goolge app script)でポップアップを表示させる方法について調べたので

紹介します!

スプレッドシートでポップアップなどを表示させたい時に便利です!

様々な種類のポップアップ表示

ポップアップにも様々な種類があって少しビックリしました笑。

まず前提として、これからソースコードが少し出てきますが
GAS(google app script)を書き込むファイルは

新規スプレッドシート作成→上のメニューから「ツール」を選択→「スクリプトエディタ」を
開いて、そこにソースコードを記述していきます。

GAS(google app script)ではmsgBox関数が初めから用意されていて、それを使ってポップアップ表示を行います。

ポップアップ表示



f:id:tsujitaku50:20170219122434p:plain



「テスト」と表示されるポップアップを表示させます。

function myFunction() {
  Browser.msgBox("テスト");
}

選択肢付きポップアップ表示



f:id:tsujitaku50:20170219124026p:plain



msgBox関数の第一引数に表示させたい文言(選択肢)を入力します。
第二引数にはGASが元々用意しているBrowser.Buttons.OK_CANCELという定数を入れます。
Browser.Buttons.OK_CANCEL定数についての説明は後述しています。

function myFunction() {
   var test = Browser.msgBox("続けますか?", Browser.Buttons.OK_CANCEL);
    Browser.msgBox(test);
}

タイトル付きポップアップ表示



f:id:tsujitaku50:20170219160625p:plain



msgBox関数の第一引数にタイトル、第二引数に文言(選択肢)、第三引数にBrowser.Buttons.OK_CANCEL定数 を入れます。
test変数には文字列okcancelのどちらかが入ります。
この部分に関しての説明は後述しています。

function myFunction() {
    var test = Browser.msgBox("どちらかを選択して下さい", "続けますか", Browser.Buttons.OK_CANCEL);
    if (test == 'ok') {
        Browser.msgBox("okを押しました");
    }
    if (test == 'cancel') {
        Browser.msgBox("キャンセルを押しました");
    }
}

入力欄付きポップアップ表示



f:id:tsujitaku50:20170219163305g:plain



ユーザーに入力をさせたい時はinputBox関数を使います。
引数には表示させたい文言を入力します。

function myFunction(){
 var age = Browser.inputBox('あなたの年齢は?');
 Browser.msgBox(age+'歳');
}

少し解説

先程からソースコードに記述してあるBrowser.Buttons.OKですが

表示させるボタンの種類によって、実は4種類あります。

引数に入れる定数 表示されるボタン
Browser.Buttons.OK OKボタン
Browser.Buttons.OK_CANCEL OKボタンとCANCELボタン
Browser.Buttons.YES_NO YESボタンとNOボタン
Browser.Buttons.YES_NO_CENCEL YESボタンとNOボタンとCENCELボタン

どのボタンを選択するかによって、戻り値も変わってきます。

引数に入れる定数 表示されるボタン
YESボタン 戻り値は文字列の“yes”
NOボタン 戻り値は文字列の“no”
OKボタン 戻り値は文字列の“ok
CANCELボタン 戻り値は文字列の“cancel”

まとめ

一言でポップアップと言ってもタイトル付きだったり、入力欄付きだったり、ボタン複数だったりと

様々な種類がありました。

スプレッドシートで何かポップアップを表示させたいときは便利なのでぜひ使ってみて下さい。

おわり!!