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

タスクリスト(TO DO)の利用 (2/6)

作成:2012-06-24 10:27
更新:2012-06-24 10:27

■TaskListとTaskListCollection

では、まず「タスクリスト」から説明しましょう。タスクリストは、「TaskList」というオブジェクトとして用意されています。このオブジェクトに、タスクリストのタイトルやIDなどの情報がまとめられ管理されます。

ただし、このTaskListを取り出すためには、その他にもいくつかのオブジェクトとその役割について理解しなければいけません。では、サービスの基本オブジェクトであるTasksから、TaskListを取り出すまでの流れを整理して行きましょう。

1. TaskListsCollectionの取得
変数 = Tasks.Tasklists;
Tasksには「Tasklists」というプロパティが用意されています。これには「TaskListsCollection」というオブジェクトが設定されています。これは、次の「TaskLists」というオブジェクトをまとめて管理するコレクションオブジェクトです。

2. TaskList/TaskListsの取得
変数 = 《TaskListsCollection》.list();
変数 = 《TaskListsCollection》.get( TaskListのID );
TaskListsCollectionには、タスクリスト取得に関する2つのメソッドが用意されています。「get」は、TaskListを取得するためのメソッドです。これは、引数に、取り出すTaskListIDを指定します。既にIDがわかっていれば、これで取り出せます。

もう1つは「list」というメソッドです。これは、TaskListをまとめて管理する「TaskLists」というオブジェクトを返します(複数形のsがついてます。間違えないように!)。このTaskListsは、TaskListをまとめたものです。このTaskListsから、TaskListが取り出せます。

3. TaskListの取得
変数 = 《TaskLists》.getItems();
TaskListsの「getItems」を呼び出すことで、TaskListオブジェクトの配列を得ることができます。これですべてのTaskListを取り出し、タスクリストに関する情報などを扱えるようになります。

――このように、あらかじめIDがわかっていればTaskListsCollectionからぱっとTaskListを取り出せるのですが、そうでない場合には、TasksTaskListsCollectionTaskListsTaskList配列を取り出して……という、かなり面倒くさいことになります。


■TaskListの情報

このTaskListには、タスクリストに関するさまざまな情報が保管されており、それを利用するメソッド類も用意されています。主な情報利用について整理しておきましょう。

●IDの利用
変数 = 《TaskList》.getId();
《TaskList》.setId( 新しいID );
すべてのTaskListには、識別用のIDが割り振られています。これはランダムな英数字の組み合わせテキストのようなものです。このIDは、setIdで変更できますが、やたらと変更するとタスクリスト自体がおかしくなりかねないので、値の取得だけにしておいたほうがよいでしょう。

●タイトルの利用
変数 = 《TaskList》.getTitle();
《TaskList》.setTitle( 新しいタイトル );
タスクリストのタイトル(名前)を扱うためのものです。タイトルのテキストを取得したり、変更したりできます。

――この他にもメソッドはありますが、とりあえずIDとタイトルだけ使えれば十分でしょう。タスクリストは、タスクの入れ物として使うだけですから……。では、下に、特定のTaskListを取得するための基本的な流れをスクリプトに整理しておきましょう。

下のgettaskは、1つ目のタスクリストのタイトルとIDを取得し表示するものです。Tasks.Tasklists.listTaskListsを取得し、そのgetItemsTaskList配列を取り出します。その最初の要素を取り出してgetIdgetTitleの値を取り出しています。オブジェクトの入れ子構造が面倒くさいですが、やり方さえわかればそう難しいものではありませんね。

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

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

●プログラム・リスト●

function gettask(){
  var listitems = Tasks.Tasklists.list().getItems();
  var item = listitems[0];
  var id = item.getId();
  var title = item.getTitle();
  Logger.log(title + " (" + id + ")");
}

※関連コンテンツ

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