libro
www.tuyano.com
初心者のためのGoogle Apps Scriptプログラミング入門

Google Apps Scriptの基本を覚える (5/7)

作成:2011-06-15 09:30
更新:2011-11-04 15:46

■「はい」「いいえ」ボタンを使う

Browser.msgBoxは、単にメッセージを表示するだけのものでしたが、では「ユーザーから何かを入力してもらう」にはどうすればいいのでしょう?

これには、いくつかの方法が考えられます。まず、もっともシンプルなのは「msgBoxで、ボタンを選んでもらう」という方法です。msgBoxでは、メッセージを表示する際、「OK」ボタン以外のボタンを表示させることができるのです。

下のリスト欄に「ボタンを使った例」を挙げておきました。スクリプトを実行すると、「はい」「いいえ」という2つのボタンが表示されます。そして、選んだボタンによって、次に表示されるメッセージが変わります。

ここでは、msgBoxに「表示されるボタンの種類」を指定して呼び出しています。msgBoxには、以下のような書き方も用意されています。
変数 = Browser.msgBox( メッセージ , ボタンの種類 );
変数 = Browser.msgBox( タイトル , メッセージ , ボタンの種類 );
このようにして、表示するボタンの種類を引数に用意することで、ボタンを変更することができます。では「ボタンの種類」というのはどうやって指定するのか? これは、Browser.Buttonsオブジェクトに以下のようなプロパティとして用意されています。

OK――「OK」ボタンのみ
OK_CANCEL――「OK」と「キャンセル」ボタン
YES_NO――「はい」「いいえ」ボタン
YES_NO_CANCEL――「はい」「いいえ」「キャンセル」ボタン

今回の例では、Browser.Buttons.YES_NOをボタンの種類として指定していますね。これで、「はい」「いいえ」ボタンがアラートに表示された、というわけです。どのボタンを選んだかは、msgBoxの返値をチェックすることでわかります。選んだボタンに応じて、"ok", "cancel", "yes", "no"といったテキストが返されます。「はい」「いいえ」ではないのですね。実際に表示されるボタン名は、使用しているシステムの言語などに応じてローカライズされるため変化しますから、ボタン名そのものが返されるわけではないのです。

「クローズボタンは?」と思った人。この場合も、"cancel"が返されます。つまり、「キャンセル」ボタンとクローズボックスは、msgBoxにおいては「同じもの」として扱われるわけです。

※プログラムリストが表示されない場合

AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。

●プログラム・リスト●

※ボタンを使った例
function myFunction() {
	var result = Browser.msgBox("選んで!", "あなたはChromeユーザー?",
		Browser.Buttons.YES_NO);
	if (result == "yes"){
		Browser.msgBox("OK! さすがだね!");
	} else {
		Browser.msgBox("ちぇっ……");
	}
}

※関連コンテンツ

「初心者のためのGoogle Apps Scriptプログラミング入門」に戻る