前提・実現したいこと
スプレッドシートでセルの更新日時を隣のセルに表示させたい
発生している問題・エラーメッセージ
セルを更新した時にはその日時が表示されるが、ブラウザをいったん閉じたり、スマホからそのスプレッドシートにアクセスすると、
更新がかかってしまうのか、開いた日時が自動で入ってしまい、実際の編集日時が上書きされてしまいます
gas ### 該当のソースコード function getCurrentTime(value) { if (value) { var ctime = new Date(); var MM = ctime.getMonth()+1; var dd = ctime.getDate(); var hh = ctime.getHours(); var mm = ctime.getMinutes(); var t = MM+"/"+dd+"_"+hh+":"+mm+"発表"; return t; } } 何か手段はあるでしょうか? よろしくお願いします
どういうトリガを設定しているのか、またトリガから呼ばれる関数がなければ、何ともいえません。ここに提示なさったものは日付計算しかしていないので、適切に呼べば意図どおりになりますし、不適切な呼び出しをすれば常時上書きする処理になります。
ご回答ありがとうございます。トリガは例えばセルB1に関数 getCurrentTime(A1) と入れています。A1に入力があった場合、B1にその時の日時が入るようにしたいのですが、開くたびにA1が変更されたと認識しているようです。ほかにいいトリガのかけ方がありますでしょうか?
papinianus様 ありがとうございます。 記入してリロードしてみましても時刻が変わることはありませんでした。期待していた動作です!ありがとうございます。おっしゃるようにif文のことなのでさらにお尋ねしたいのですが。例えば、B13、B25、B37、C13、C25、C37のセルに書き換えが生じた場合、それぞれその下の行に入力日時を入れたいと思います。入力したセルの更新日時は下の行のセルに入れるというのは共通しています。この場合if文では難しいような気がします。何かアドバイスいただけませんでしょうか。文字を入れるセルに関数を入れておくと書き入れるときに消えてしまうので、関数を作って更新日時が入るに入れるとかでしょうか?お付き合いいただきましてありがとうございます。
ifでできると思うのですが、要件を例えばではなく確定してほしいです。隣のセルは右ではなかったのでしょうか?下ですか?また想定でいくつのセルですか?固定ですか?変動しますか?変動の頻度は?
お手数をおかけして、ありがとうございます。
今現在やりたいと思っているのはテスト1のリンクの表です。
一週間のカレンダーで、4週分です。
列や行は固定ですが、まちがって挿入すると増えてしまうので厳格に操作する必要があります。
これができれば、テスト2の表にも応用したいと考えています。テスト2の表は固定です
最終はテスト2では更新日時の左にだれが更新したかグーグルアカウントの名前を入れたいと思っています。
いずれの表もグーグルアカウントで共同編集している表なので、視覚的にいつ書き換わったかが分かるようにしたいという希望です。
いずれもまずは更新日時を入れたいです。
テスト1
https://docs.google.com/spreadsheets/d/1ZfxlK5MpSdtMwGaFm91FjK6G7u8i3KBNvt-1EgaT2oQ/edit?usp=sharing
テスト2
https://docs.google.com/spreadsheets/d/1xmuDjnn8yLrSQfuKEDE05e_dfQeZK4uchcv0ZjiP97c/edit?usp=sharing
急いではおりませんので、お時間ありましたらご教授お願いいたします。
ありがとうございます
1ヶ月くらいたちましたね、おひさしぶりです。テスト1およびテスト2が正確にそのままの姿であればできる方法を(ちゃんと適切な形で)考えました。回答をご確認ください
papinianus様ありがとうございます。お金を払っているわけでもないのに、ここまでご親切な対応を頂けるとは思っていませんでした。お盆は仕事で忙しいですので、数日後に試してみたいと思います。また報告いたします。本当にありがとうございます!!
あと、もしお時間がありましたら、条件分岐の方法の解説をお願いできませんでしょうか?function getCurrentTime()は時間を取得して表示させる。function onEdit(e)はシート名を取得してそれを引数にしてそれぞれのfunctionに送っているというところでしょうか。あとはどのように文字列が入力されたことを認識し、更新日時をいれるセルを認識しているのでしょうか?
コードの解説については、コードが書いてある回答のコメント欄に記載します(質問についてのコメントではないので)
回答1件
あなたの回答
tips
プレビュー