#お題の内容
スパイ大作戦というアメリカのドラマで、スパイに指示を伝えたカセットテープが、再生後に自動消滅する、という設定がありました。
この設定にインスパイアされ、開封されて5秒後にメッセージが跡形も無く消える、という機能を実現したいと思います。
Youtubeに、完成イメージをアップロードしています。
http://youtu.be/cicP-jtWVgM
#仕様
相手に送るメール内に、Googleスプレッドシートのリンクを内包します。スプレッドシートは起動後5秒でメッセージをクリアするよう、スクリプトを記載します。
#スクリプト
スプレッドシートが開かれた際に実行されるonOpen関数を利用します。
トーストメッセージで、5秒で消える注意を促し、5秒処理実行を待った後、メッセージエリアをクリアすることで、メッセージを消去します。
スクリプトは以下としました。
eliminated_message.js
function onOpen() { //スプレッドシートが開かれた際に、自動的に実行される関数
var ss = SpreadsheetApp.getActiveSpreadsheet() ;
var sheet = ss.getActiveSheet(); //アクティブなシートを定義
var target_range = sheet.getRange("B1:B2"); // 消去するメッセージエリアを定義
var target_time = 5; // 5秒後にメッセージを消去
ss.toast("このメッセージは、5秒で消えます。", "注意!", 5); //シートの右下にせりあがって現れるメッセージ
Utilities.sleep(target_time*1000); // 5秒待つ
target_range.clear(); // メッセージをクリア
}
#注意
2012年12月24日時点において、JavascriptのsetTimeout関数は使えないようです。