| Googleを追いかけろ! |
| |
| . | ||
| home >> ユーザーガイド 4. 一般的なタスクのプログラミング | ||
|
![]() |
カスタムメニューとポップアップメッセージの作成
スプレッドシートにメニューを追加したり、スクリプト中の特定の関数をアイテムとしてリンクさせることは難しくありません。
次の例では アイテムを2つ (Surprise 1 , Surprise 2) 持つSurprises という名前のメニューをメニューバーに追加しています。
アイテムのどちらでもクリックすればメッセージボックスがポップアップします。
function onOpen() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var menuEntries = [ {name: "Surprise 1", functionName: "menuItem1"},
{name: "Surprise 2", functionName: "menuItem2"} ];
ss.addMenu("Surprises", menuEntries);
}
function menuItem1() {
Browser.msgBox("You clicked Surprise 1 on the menu!");
}
function menuItem2() {
Browser.msgBox("Surprise! Surprise!")
}
普通はスプレッドシートを開けば、カスタムメニューが表示されていて欲しいものですね。 onOpen関数がスクリプトにあるのはそのためです。
こうすればシートが開かれると同時にメニュー表示が実行されます。シートにメニューを取り込むには便利なだけではなく、ユーザーに
いち早くデータを見せたいときなどにも有効です。
メニューへのエントリーは次のコードで定義されています。
var menuEntries = [ {name: "Surprise 1", functionName: "menuItem1"},
{name: "Surprise 2", functionName: "menuItem2"} ];
変数 menuEntriesは配列オブジェクトです。各オブジェクトは名前の値と関数名のキーを示す値をセットで持っています。
配列はスプレッドシートを活用するための要素の集まりです。配列内の各要素は配列内のその位置 (index point) によって識別されます。
配列におけるJavaScript や Google Apps Script はともにゼロベースです。つまり一番目の要素は 0 からであり、1 からの意味ではありません。
配列の最初のポジションを 0,0とするならば2個の要素で3個の要素を測定することになります。配列はデータの保存や操作に大変便利な方法なのでスクリプトには欠かせません。
括弧( ] ) でメニュ名と関数を囲んでいるので、メニューアイテムが配列になっていることが分かるでしょう。
各メニューアイテムは中括弧の中にあって、この構文は各名前付き関数と名前がオブジェクトのセットとなることを定義しています。
メニューエントリーの定義づけの後はメニューそのものの定義です。
ss.addMenu("Surprises", menuEntries);
メニューのラベルは Surprisesで、menuEntries は addMenu メソッドの引数となっています。
メニューアイテム名や関数を定義している配列に値をリンク付きメニューアイテムで送っています。
メニュー項目およびメニューを作成するための一般的なコードが下のコードです。
function onOpen() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var menuEntries = [ {name: "item_name_1", functionName: "function_1"},
{name: "item_name_2", functionName: "function_2"},
{name: "item_name_n", functionName: "function_n"];
ss.addMenu("menu_name", menuEntries);
}
次のコードがユーザーが新しいメニューでメニューアイテムを選択したときに表示するメッセージボックスです。
function menuItem1() {
Browser.msgBox("You clicked Surprise 1 on the menu!");
一般的なコードは下のようになります。
function yourFunctionName() {
Browser.msgBox("message_to_display");
スクリプトからメールを送信する
チュートリアルに掲載しています。
--ユーザーガイド 4. 一般的なタスクのプログラミング : end -- 2011/10/30
|