Google Apps Script

【GAS】スプレッドシートの入力日付を自動で「前年」または「翌年」に変更する

こんにちは、もり(moripro3)です!

年末年始などにスプレッドシートに日付入力するとき、地味にストレスを感じませんか?

スプレッドシートの仕様では、「年(Year)」を省略して「月/日」だけ入力すると、入力日の「年」を自動で補完してくれます。

この仕様が仇となるのが、このような場面です。

 

  • 2020年の 年末 に、翌年日付のつもりで「1/4」と入力すると、「2020/1/4」になってしまう(来年の1月日付にしたい・・・)

 

  • 2021年の 年初 に、昨年日付のつもりで「12/30」と入力すると、「2021/12/30」になってしまう(去年の12月日付にしたい・・・)

 

こんなとき、我々はこう思うのです。

 

モリ
モリ

違う、そうじゃない!

とはいえ、わざわざ「/月/日」を入力するのは面倒くさいですよね。

そこで、この記事では、日付入力時の「違う、そうじゃない」を解決するスクリプトを紹介します。

まずは動作イメージをご覧ください(再生しても音は出ません)

 

※スクリプト付きのスプレッドシートをコピーしてそのまま使えるよう、記事の最後にリンクを貼っています。

シンプルトリガー onEdit でセルの入力日付を変更する

このツールで使うのは、シンプルトリガーのonEdit(e)です。スプレッドシートの値が変更されたときに、自動で実行されます。

このonEditを使って、セルに日付が入力された場合、その日付を「前年」または「翌年」に変更します。

日付の設定変更ができるよう設定シートを作成

「設定」シートのA2セルにリストを作成して、前年/今年/翌年 を切り替えられるようにします。「データの入力規則」で作成するとよいでしょう。

入力日付の年を設定する

(例)「前年日付にする」を選択すると、スプレッドシート の 全シート の 全セル に新たに入力する日付が、前年日付になる(既に入力済みの日付には影響しない)

セルの入力日付の「年」を変更するスクリプト

処理内容はこのようになっています。

セルに入力された値を取得し、

  • 「日付以外」の場合、処理終了
  • 「日付」の場合、設定シートの設定どおりに、年を ±1 してセルに再代入

 

【ツール配布】コピーしてお使いください

コンテナバインド型(スプレッドシートに紐づくスクリプト)で配布しています。権限は「閲覧のみ」としているので、コピーしてお使いください。

[shared]入力日付を自動で「前年」または「翌年」に変更する(※コピーしてお使いください)

ちょっとした工夫で、日常の「違う、そうじゃない!」を無くして、ストレスフリーに仕事を進めていきたいですね。