GoogleスプレッドシートでTODOリストを作成しています。

たとえばタスクの期限が近づいてきた時に(3時間前など)に指定したメールアドレスにメールを
送る(ハングアウトで通知されるとか、ユーザーに直接連絡が行けばなんでも構いません)
ようなスクリプトや、条件付き書式設定など?

方法はございますでしょうか?

スプレッドシートだけでなくても、GoogleカレンダーやIFTTTなどといった他のサービスとの複合でもアイデアがあればぜひご教授頂きたく存じます。

このQ&Aに関連する最新のQ&A

A 回答 (2件)

独学がてら原理動作を作ってみました。

(添付画像、後記スクリプト)
太字の日時を現在日時の3時間前後に設定し、「期限チェック」ボタンを押すと、期限まで3時間以内なら添付画像のように「警告」表示されメールが送信されました。
注意点は、期限の表示形式を本来の日付や日時にすると判定ができなかったため書式なしテキストとしました。

スプレッドシートを開いたイベントに処理を割り当てるという仕組みは見つけられませんでした。
周期処理も同様のため、自動ではなく上記のようにボタンを押すという手動の実装を行いました。
当然開きっぱなしでは実行されないことになります。

メールについては、下記も参考になります。
https://developers.google.com/apps-script/overvi …

セルの読みは下記が参考になります。
https://developers.google.com/apps-script/guides …

GoogleスクリプトはベースはJavascriptのようなので、Javascriptの仕様も参考になると思います。

あとは、上記等、勉強して補って下さい。
Googleの捨てアカウントがあるなら、原理動作したものを編集者権限(動作させることができる)で共有できます。

ちなみにここまで作って気づきましたが、Googleカレンダーの予定にメールの通知機能があります。
ただ、通知は最短で1日前です。
でも、ポップアップによる通知も設定できるため、もしかしたらこちらは開きっぱで通知されるかもしれません。
とはいえ、1日前にポップアップされてもですが。。。

-----スクリプト
function CheckExpiration() {
var sheet = SpreadsheetApp.getActiveSheet();
var data = sheet.getDataRange().getValues();
expire = new Date(data[1][1]);
now = new Date();
timeExpire = expire.getTime();
timeNow = now.getTime();
judge = sheet.getRange("C2");
judge.setValue("");

if (timeExpire - timeNow <= 1000 * 60 * 60 * 3)
{
judge.setValue("警告")
Notify();
}
}

function Notify()
{
// Create a new Google Doc named 'Hello, world!'
var doc = DocumentApp.create('Hello, world!');

// Access the body of the document, then add a paragraph.
doc.getBody().appendParagraph('This document was created by Google Apps Script.');

// Get the URL of the document.
var url = doc.getUrl();

// Get the email address of the active user - that's you.
var email = Session.getActiveUser().getEmail();

// Get the name of the document to use as an email subject line.
var subject = doc.getName();

// Append a new string to the "url" variable to use as an email body.
var body = 'Link to your doc: ' + url;

// Send yourself an email with a link to the document.
// GmailApp.sendEmail(email, subject, body);
Logger.log("Send Email");
}
「Googleスプレッドシートで特定のセル」の回答画像2
    • good
    • 0

ググったレベルだけど。

。。

こんなAPIがあるので、スプレッドシートのメニュー「ツール」-「スクリプトエディタ」からスクリプトを作り、スプレッドシートにアドオンすれば、ExceL+VBAのようにできるのではなかろうか。
https://developers.google.com/apps-script/refere …

Javascriptだとグローバルに書いた処理はロード時に実行されるので、同様なら、シートを開くだけでTODOリストの期限をチェックしてメール送信まで自動でできそう。
(Googleのスクリプトはスプレッドシートだけのものではないから厳しいかもしれない。。。
逆に、読み込み時というイベントに応じて処理を行う仕組みが用意されているかも。)
とはいえ、やり過ぎならVBA同様、メニュー「挿入」-「画像」で□を書いてスクリプトを割り当て、期限チェックボタンとする等。

気になるとこでは、
・メール送信はおそらく送信元はスプレッドシードの所有者のグーグルアカウント???
・メール送信失敗は、APIの戻りが同オブジェクトなので、前後で受信トレイのスレッド数を比較???
 (失敗ならエラーメールが受信される。)
    • good
    • 0
この回答へのお礼

ご回答誠にありがとうございます。

とても丁寧に教えていただいて上で恐縮なのですが、当方はプログラミングに関する知識が、皆無に等しいのです。

お手間をおかけついでにいくつかお尋ねしたいのですが、

●こちらのAPIはスクリプトエディタを開いてそのままコピペすればよろしいのでしょうか?

●もしそうだとすれば、どこからどの範囲をコピペして、どの範囲を各個人のメールアドレスに書き換えればよいですか?

もし、これがシートをひらくだけで実行されるなら、ほぼやりたいことが実現できるのですが、「スプレッドシートをひらく」というアクションが無ければ実行されないのでしょうか?
だとすれば、開きっぱなしの場合はTODOの期限が経過しても実行されない可能性はありますでしょうか?

お手すきの折がございましたら、ご返答いただければ幸いです。
どうもありがとうございます。

お礼日時:2016/05/10 17:33

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QGoogle カレンダー

スケジュール管理としてグループウェアを導入する前に当面の間、Google カレンダーを使おうと思っています。共有として使う場合、管理者が新規もメールアドレスを取得し、Google カレンダー用のパス・ワードを関係者に通知して行えばよいのでしょうか。

Aベストアンサー

こんにちわ。
googleカレンダーの解説サイトとして有名なサイトがありますので、こちらを参考に設定していただければご利用いただけます。

結論から言えば、パスワードを通知する必要はありません。

googleカレンダー 使い方
http://saito-kazuo.pupu.jp/gcal/

他ユーザーとの共有設定
http://d.hatena.ne.jp/chiyorozu/20060413

また、googleカレンダーは設定によっては第三者により閲覧・検索が可能になります。
機密情報やプライベートな情報を登録される際には十分にご注意ください。

Googleカレンダーで情報流出?
http://ohnishi.livedoor.biz/archives/50249647.html

QGoogleカレンダーのオプション(通知、ポップアップ)の削除設定について

Googleカレンダーにて予定を作成する際、初期状態では「オプション」の「通知」が「ポップアップ:10分」になっています。
ポップアップはさせたくないので、予定を作成するたびに「削除」をクリックして「通知」を削除しています。

常に「通知」を削除した状態で予定を作成できるようにしたいのですが、そのような設定項目は見当たりませんでした。
もし方法をご存知でしたら教えてください。

(カレンダーをクリックしてタイトルだけを入力してさくっと作成した予定が、ポップアップしないようにしたいのです)

Aベストアンサー

カレンダー画面上で右上の「設定」
→カレンダー設定の「全般」の右の「カレンダー」
→自分のユーザ名横の「通知」
で設定できると思います。

Qgoogleグループに招待されましたが承諾されません。

googleグループの使い方で質問です。

仕事で使うグループから、招待のメールが届き、
「この招待を承諾」
のボタンをクリックしたところ、
googleグループのページが開き、次のように表示されました。

「このグループを表示して参加するには、メンバーになる必要があります(招待が必要)。
このグループは、招待がないとメンバー登録を申し込むことができません。
オーナーに連絡することもできます。」

これはまだメンバーになっていないということですよね?

どうすればメンバーになれるのでしょうか。

googleアカウントのメールアドレスとは違うアドレスなのですが、
それが原因でしょうか。

Aベストアンサー

<パターンその2>
http://www.gamefreak.co.jp/blog/solitiba/?p=1168

Qワークシートの共有

イントラネット環境で、ひとつのシートを複数ユーザー(~100人程度)で共有してデータを集計するシステムを構築できないだろうか、と考えています。
簡単な縦計や平均、あるいは文字によるレポートなど、各セルに入力・集計する内容は、普通の表計算ソフトで日常行っているのと同様のシンプルなものを想定しています。入力・閲覧するユーザーが複数なだけです。

だったらMicrosoft Excelのブック共有機能でいいかな、と思って使ってみましたが、実用化するにはいくつかの点で不足を感じました。
各営業所からの報告を集計するようなイメージなのですが、できれば(ワークシートで言うならば)行ごとにセキュリティを設定して、管理者以外は他営業所のデータのある行は書き込みできない/見られない(内容に応じて切り替え可能ならさらによし)、などの改竄/漏洩対策を講じたいのです。

市販のグループウェアでそのような機能を備えたものがあるか、あるいはExcel上でVBAにて開発可能か、データベース一式が必要なのかなど、ご助言をいただければ幸いです。よろしくお願い申し上げます。

イントラネット環境で、ひとつのシートを複数ユーザー(~100人程度)で共有してデータを集計するシステムを構築できないだろうか、と考えています。
簡単な縦計や平均、あるいは文字によるレポートなど、各セルに入力・集計する内容は、普通の表計算ソフトで日常行っているのと同様のシンプルなものを想定しています。入力・閲覧するユーザーが複数なだけです。

だったらMicrosoft Excelのブック共有機能でいいかな、と思って使ってみましたが、実用化するにはいくつかの点で不足を感じました。
各営業所か...続きを読む

Aベストアンサー

「グループウェア」で思い出しましたが、グループウエアでおなじみのサイボウズから出ている「デヂエ」というソフトがお探しのものに近いかなと思います。
似た感じの活用事例がありましたので参考 URL に書いておきました。

参考URL:http://d.cybozu.co.jp/katsuyo/casestudy/kibun/02.html

QExcelなどのドキュメント管理について

Excelなどで管理されている社内のマスターファイルの管理(変更履歴や過去ファイルの保持)を行えるソフトを探しています。マイクロソフト社のVisual Source Safeという製品が今のところ候補に挙がっているのですが、もう少し安い製品で良いものはないでしょうか。ご存知の方がいましたら教えてください。

Aベストアンサー

CVSというバージョン管理ソフトがありますよー

参考URL:http://www.naney.org/comp/cvs/index.html


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング

おすすめ情報