0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【スプレッドシート】☑つけると現在時刻が入力できるようにする方法

Posted at

はじめに

スプレッドシートでタスク管理をしていると、現在の日時を入力したいときってありますよね。

セルを選択した状態で以下のようにコマンドすると日時を入力できるんです。(Mac)

コマンド 入力内容
Cmd + Shift + ; 時間が入力できる
例)15:30:03
Cmd + Option + Shift + ; 日付と時間が入力できる
例)2024/12/27 15:30:42

でも…

「チェックボックスに ✔ つけたら、その時の時刻が入力されてほしいな〜」

と思うことがあったので、Google Apps Script(以下、GAS) を使用して実装してみました。

完成イメージ

以下のスクショが完成イメージです。

スクリーンショット 2024-12-27 16.46.16.png

C列にチェックボックスがあり、✔ をつけると同行のD列に時刻が入力されるようにします。

D2 のセルには =returnTimestamp(C2) という値が入っています。

実装

チェックボックスの出し方

こちら に記載の通りで簡単にチェックボックスを追加することができます。

以下、手順からの抜粋です。

2. チェックボックスを挿入するセルを選択します。
3. 上部のメニューで [挿入] 次へ [チェックボックス] の順にクリックします。

GASで関数を作成

D列で使用する returnTimestamp という関数はGASを使って作成しています。
次の手順で作成していきます。

  1. 上部メニュー [拡張機能] で [Apps Script] をクリックしてGAS画面を開く
  2. 画面上部のファイル名を適当に変更しる
  3. 以下のスクリプトをコピーし、エディタへ貼り付けて保存する
function returnTimestamp(value) {
  if (value === true) {
    return getFormattedTimestamp();
  }
  return "";
}

function getFormattedTimestamp() {
  var now = new Date();
  var year = now.getFullYear();
  var month = ("0" + (now.getMonth() + 1)).slice(-2); // 月は0から始まるので+1
  var day = ("0" + now.getDate()).slice(-2);
  var hours = ("0" + now.getHours()).slice(-2);
  var minutes = ("0" + now.getMinutes()).slice(-2);
  var seconds = ("0" + now.getSeconds()).slice(-2);
  
  return year + "/" + month + "/" + day + " " + hours + ":" + minutes + ":" + seconds;
}

スクリーンショット 2024-12-27 16.49.43.png

作成したスクリプトを呼び出す

チェックボックスがあるセルが C2 なので、
D2 のセルには =getFormattedTimestamp(C2) を入力します。

あとは C2 のチェックボックスに ✔ をつけてみてください。

D2 セルに現在時刻が入力されます。

さいごに

以前は =if(C2=TRUE,NOW(),"") で同様のことが出来ていたんですが、
いつからかこの式だと「別の行の ✔ に反応して全部の時刻が現在の時間に更新される」という挙動になってしまうようになりました。

というわけで、GASを使って実装する経緯となりました。

もっといいやり方あるよ〜って方は、ぜひ教えていただけると助かります!

0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?