予定に設定したタグ名を取得する— getAllTagKeys()
今回のメソッドは、予定に設定した任意のメタデータ(タグ)のタグ名を取得するgetAllTagKeys()メソッドを紹介します。
タグとして設定したメタデータは、タグ名を指定して削除したりデータを取得したりするのですが、タグ名をすべて覚えなくてはならないのか?という疑問を持つ方もいるかと思います。今回のメソッドを利用すれば、設定されているすべてのタグ名を配列で取得できますので、特にタグ名を覚える必要はないことが理解できるかと思います。
取得した配列データを使ってループ処理をすることで、設定したすべてのメタデータにアクセスすることができます。
getAllTagKeys()
//予定に設定したタグ名を配列で取得するコード function sampleCode1() { var calendar = CalendarApp.getDefaultCalendar(); var date = new Date(); var events = calendar.getEventsForDay(date); var key1 = "タグ名1"; var value1 = "タグの値1"; var key2 = "タグ名2"; var value2 = "タグの値2"; for (var i in events) { var event = events[i]; event.setTag(key1, value1); event.setTag(key2, value2); console.log(event.getAllTagKeys()); } }
『 変数の説明 』
calendar = デフォルトカレンダーを取得
date = プログラム実行日を代入
events = プログラム実行日の予定を取得
key1 = タグ名を代入その1
value1 = タグの値を代入その1
key2 = タグ名を代入その2
value2 = タグの値を代入その2
スクリプトができたら▶ボタンでプログラムを実行してみましょう。今回のコードでは、2つのタグ名と値を予定に追加しています。追加が終了したらgetAllTagKeys()メソッドを使ってタグ名を配列で取得します。今回設定したタグ名は『タグ名1』と『タグ名2』という名前で設定をしましたので、Ctrl + Enterでログを確認すると[“ログ名1”, “ログ名2”]と出力がされていると思います。
もしサンプルコード1を実行する前にいろいろなタグ名でメタデータを設定している場合には、サンプルコード2を最初に実行してからサンプルコード1を実行してみて下さい。サンプルコード2では、設定されているタグデータをすべて削除するコードを組んであります。もし必要なデータが予定に入っている場合には実行すると削除されてしまいますのでご注意下さい。
//予定に設定したタグデータをすべて削除するコード function sampleCode2() { var calendar = CalendarApp.getDefaultCalendar(); var date = new Date(); var events = calendar.getEventsForDay(date); for (var i in events) { var event = events[i]; var tags = event.getAllTagKeys(); for (var j in tags) { event.deleteTag(tags[j]); } } }
まとめ
今回は予定に設定したタグのタグ名を配列で取得するgetAllTagKeys()メソッドのご紹介をしました。このメソッドを利用すればタグ名に何が設定されているとしてもタグが設定されている場合にのみ処理がされるようなプログラムを組むことができるようになります。通常GASで変数に代入した値はプログラム終了時にデータが消滅してしまいますが、今回のタグを利用することで、次回実行時に値を渡すようなことができるようになります。プログラムの幅が広がりますね。