libro
www.tuyano.com
Google Apps Scriptプログラミング [中級編]

Uiによる簡易インターフェイスの作成 (2/5)

作成:2013-06-30 11:41
更新:2013-06-30 11:41

■Uiによるメニューの作成

UiオブジェクトにはダイアログやアラートなどのUIもありますが、まず最初に覚えるべきは「メニュー」でしょう。スプレッドシートでは独自のメニューを追加できましたが、Uiを利用することでGoogleドキュメントやフォームにも独自のメニューを追加することができます。

これは、「Menu」オブジェクトというものを作成し、これにメニュー項目を追加していきます。では、メニュー構築のためのメソッドについて整理しましょう。


・UiにMenuを作成する
変数 = 《Ui》.createMenu( メニュー名 );
メニューを作成します。引数には、メニューに表示されるテキストを指定します。返値は、作成されたMenuオブジェクトになります。まだこの段階では、メニューは表示されません。オブジェクトを作っただけです。


・Menuにメニュー項目を追加する
変数 = 《Menu》.addItem( メニュー項目名 , 関数名 );
Menuにメニュー項目を追加します。第1引数にはメニュー項目に表示されるテキスト、第2引数にはそのメニュー項目を選んだ時に呼び出される関数名をテキストで指定します。返値はこのMenuオブジェクト自身です。


・Menuにセパレータを追加する
変数 = 《Menu》.addSeparator();
Menuにセパレータ(区切り線)を追加します。返値は、このMenuオブジェクト自身です。


・Menuにサブメニューを追加する
変数 = 《Menu》.addSubMenu(《Menu》);
Menuに、別のMenuをサブメニューとして追加します。引数に指定したMenuが、このMenuのメニュー項目として組み込まれます。返値は、このMenu自身です。


・Menuをメニューバーに組み込む
《Menu》.addToUi();
Menuをそのアプリケーションのメニューバーに追加します。これで実際にメニューが表示されます。

実際の利用例を下にあげておきます。HelloとByeという2つのメニュー項目を持ったメニュー「Sample」を作成します。それぞれメニュー項目を選ぶとhelloFuncbyeFuncという関数を呼び出すようにしてあるので、別途これらの名前で関数を用意しておきましょう。

上の説明を見て、それぞれのメソッドがすべて操作したMenuオブジェクト自身を返すようになっていることに気がついたでしょう。Menu自身を返すということは、メソッドの後に更にメソッドをつなげて書ける、ということになります(最初のメソッドの返値であるMenuのメソッドをまた呼び出す、というわけです)。下のサンプルを見ると、長いけれど実はこれがひと続きの文になっていることに気がつくでしょう。

このようにメソッドを次々とつなげて記述する書き方を「メソッドチェーン」といいます。慣れると、長い処理を一続きにして書けるので非常に書きやすく便利ですよ!



※ちなみに、Googleスプレッドシートでのメニュー作成についての説明はこちら
http://libro.tuyano.com/index3?id=644002&page=5

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

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

●プログラム・リスト●

function onOpen() {
  DocumentApp.getUi()
  .createMenu("Sample")
  .addItem("Hello", "helloFunc")
  .addSeparator()
  .addItem("Bye", "byeFunc")
  .addToUi();
}


※関連コンテンツ

「Google Apps Scriptプログラミング [中級編]」に戻る