質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

Q&A

1回答

18978閲覧

googleスプレッドシートでチェックボックスにチェックを付けた年月日時刻を自動入力したい。

Juchan

総合スコア10

Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

0グッド

2クリップ

投稿2018/09/15 13:53

初心者です。
スプレッドシートでチェックボックスにチェックを入れた年月日時刻をセルに自動入力したいのですが、
このような記述で実行したところ、チェックボックスにチェックを入れたタイミングだけでなく、ファイルを開いて実行されたタイミングでも時刻が更新されてしまいます。
条件として、チェックしたタイミングを保持したいのですが、どうしたらいいでしょうか。

function getCurrentTime(value) {

if (value) {
var ctime = new Date();
var yy = ctime.getFullYear();
var mo = ctime.getMonth()+1;
var dd = ctime.getDate();
var hh = ctime.getHours();
var mm = ctime.getMinutes();
var t = yy+"年"+mo+"月"+dd+"日"+hh+":"+mm;
return t;
}

}

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

papinianus

2018/09/18 12:29

失礼ながらあなたがこれを無から生んだとは思えないので、参考にしたサイトを教えてください
papinianus

2018/09/18 13:21

ありがとうございます。そちらにも書きましたが使いものにならないので、参考にしないようにしましょう
Juchan

2018/09/18 13:29

こちらのような単純な1ファイル1シートです。 https://docs.google.com/spreadsheets/d/1diPe731zTgbYatacIG-9EaHBDMKZP5HEQmCsWqvQkWE/edit?usp=sharing B列に並ぶ100行ほどのチェックボックスをいずれかチェックしたら、同じ行のC列に年月日時刻までがタイムスタンプされて、その情報を保持してほしいのですが、うまくいきません。トリガとして値の変更や編集時などを設定して試してみました。驚きましたが、本当によく似た質問が最近あったようで、煩わせてしまい申し訳ありません。色々と検索して調べていたのですが、行きついていませんでした。もしさらに教えていただける点がありましたら、よろしくお願い致します。
Juchan

2018/09/18 13:52

過去の回答の中の、”A列が編集されたときだけやりたいなら、cの値でifをとればいいと思われます。”の部分で、A列のみ編集でB列にスタンプという場合、ifをどのように記述するとうまくいくでしょうか。
papinianus

2018/11/06 06:01

回答を編集しました。本当にA列ですね?シートはB列にチェックがありますよ?どちらも書きました。
guest

回答1

0

過去に同様の質問で答えたことがあります。

まずB1セルにgetCurrentTime(A1)などと書いていると思いますが根本的に使い方が違います。

どういう条件(チェックボックスが一つなのかシートに複数あるのか)でどこに日時を書きたいのかなど、上記質問をご覧になりつつ詳細に記載してください
(わからなければ、上記質問のようにシートへのリンクを貼ってください)

--基本形を追記
過去の回答のコピペですが、あるセルに入力されたときに、右隣に更新日時を入れるのはこういうコードになります。

javascript

1function onEdit(e) { 2 var r = e.range.getRow(); 3 var c = e.range.getColumn(); 4 if(c !== 1) {return;} //A列でなかった場合抜ける(コメント追記なさった事例 5 //if( c !== 2) {return;} //B列でなかった場合抜ける(共有されたシートから推察するパターン) 6 e.range.getSheet().getRange(r, c+1).setValue(getCurrentTime()); 7} 8function getCurrentTime() { 9 var ctime = new Date(); 10 var MM = ctime.getMonth()+1; 11 var dd = ctime.getDate(); 12 var hh = ctime.getHours(); 13 var mm = ctime.getMinutes(); 14 var t = yy+"年"+mo+"月"+dd+"日"+hh+":"+mm; 15 return t; 16}

投稿2018/09/18 12:39

編集2018/11/06 06:01
papinianus

総合スコア12705

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

papinianus

2018/09/18 13:21

再度となりますが、どういう条件でどこのセルにチェックボックスがあり、そのときどこのセルに日時を書きこみたいか詳細を下さらなければこれ以上具体的には書けません。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問