LoginSignup
6
5

More than 5 years have passed since last update.

スパイ大作戦のカセットのように自動的に消失するメッセージ

Posted at

お題の内容

スパイ大作戦というアメリカのドラマで、スパイに指示を伝えたカセットテープが、再生後に自動消滅する、という設定がありました。
この設定にインスパイアされ、開封されて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関数は使えないようです。

6
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
5