スプレッドシートに日付を自動入力する方法4選

スプレッドシートを利用していると、特定のセルに日付を自動入力して欲しいことが良くありますよね。今回は、スプレッドシートに日付を自動入力する方法をいくつかのパターン別に紹介していきます。

1.スプレッドシートを開いたときに日付を自動入力する

まず始めに、スプレッドシートを開いたとき、すなわち起動時に、そのスプレッドシートの任意のセルに日付を入力する方法を紹介します。

アウトプットイメージ

スプレッドシート

https://docs.google.com/spreadsheets/d/10OZGNQwVqUZenuDL3K8Mz5NBaaDOQ1fW7Wz9w9yMeWM/edit#gid=0

ご覧の通り、今回は

B1セルに最終閲覧時刻が表示されるようになっています。

このスプレッドシートが起動したら、B1セルに最終更新日が記録されます。

上記スプレッドシートは編集権を限定しておりますので、利用になる場合はコピーしてお使いください。

スクリプトエディタ

https://script.google.com/d/Mr6q_w76mdDXm-CR3A2dWNPPWgzBTpm2W/edit

解説

スプレッドシート

スプレッドシートには特に仕掛けはありません。

スクリプトエディタ

スクリプトエディタには、スプレッドシートに紐付けて作成されたものと、紐付けられずに独立して作成されたものの2タイプがありますが、今回は前者の紐づけられたタイプです。

まずはコードを確認しましょう。

function onOpen() {

var sh =SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();

var daterange = sh.getRange(1, 2);

var newdate = new Date();

daterange.setValue(newdate);
}

まず始めに、

var sh =SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();

の部分では、「sh」という変数を用意し、現在アクティブなスプレッドシートのうちのアクティブなシートを代入しています。ここで言う「アクティブ」とは、「起動されている」「使用されている」くらいの意味と思っておけば良いと思われます。

その後、

var daterange = sh.getRange(1, 2);

の部分では、「daterange」という変数を用意し、1行目2列目のセル、すなわちB1セルを代入しています。

また、最後の

var newdate = new Date();

daterange.setValue(newdate);

の部分で、先ほど用意したdaterangeに、プログラム実行時点の日付(new Date())を貼り付けています。

2.どこかのセルが更新されたらそのセルにコメントを付ける

アウトプットイメージ

スプレッドシート

https://docs.google.com/spreadsheets/d/1L6pqd0piL5_jn3jYopg_J_3B3Izpvs674bLUTQk4Rb8/edit#gid=0

A1:B3までに適当にデータを入力してありますが、各セルには更新された日時が記載されています。

上記スプレッドシートは編集権を限定しておりますので、利用になる場合はコピーしてお使いください。

スクリプトエディタ

https://script.google.com/d/MW0mHKCbvaBQfv-Z_VUlCg1-L80s2sBMi/edit?

解説

スプレッドシート

スプレッドシートには特に仕掛けはありません。

スクリプトエディタ

スクリプトエディタには、スプレッドシートに紐付けて作成されたものと、紐付けられずに独立して作成されたものの2タイプがありますが、今回は前者の紐づけられたタイプです。

まずはコードを確認しましょう。

function onEdit() {

var sh =SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();

var activerange = sh.getActiveRange();

var newdate = Utilities.formatDate(new Date(), “JST”, “YYYY/MM/dd HH:mm:ss”);

activerange.setNote(newdate);
}

まず始めに、

var sh =SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();

の部分では、「sh」という変数を用意し、現在アクティブなスプレッドシートのうちのアクティブなシートを代入しています。ここで言う「アクティブ」とは、「起動されている」「使用されている」くらいの意味と思っておけば良いと思われます。

その後、

var activerange = sh.getActiveRange();

の部分では、「activerange」という変数を用意し、プログラム実行時点でアクティブなセル、すなわち選択されているセルを格納しています。

また、

var newdate = Utilities.formatDate(new Date(), “JST”, “YYYY/MM/dd HH:mm:ss”);

の部分では、プログラム実行時点の日付(new Date())の形式を整え、日本時間に設定します。

最後に、

activerange.setNote(newdate);

の部分で、先ほど用意したactiverangeに、プログラム実行時点の日付(new Date())をコメントしています。

3.どこかのセルが更新されたらその行に自動入力する

アウトプットイメージ

スプレッドシート

https://docs.google.com/spreadsheets/d/1vVcmf6KbEOx6I6_OCmNN2bqOmCiPNVnjniQjOoL-iBM/edit#gid=0

ご覧の通り、今回は

A列・・・タスク名

B列・・・進捗(ステータス)

C列・・・最終更新日

の構成となっています。

A列もしくはB列が更新されたら、C列に最終更新日が記録されます。

上記スプレッドシートは編集権を限定しておりますので、利用になる場合はコピーしてお使いください。

スクリプトエディタ

https://script.google.com/macros/d/1A3KjUyCKXs-bLslIQNDTQTlBytg7o9oQZjLlRtQLk66pLTsNLKd0u9V4/edit

解説

別途解説記事を執筆致しましたので、そちらを参照ください。

スプレッドシートが更新されたら日付をGASで行ごとに自動入力する

4.関数を用いてGoogleスプレッドシートに自動更新される日付を入力する

解説

別途解説記事を執筆致しましたので、そちらを参照ください。

【関数】Googleスプレッドシートに自動更新される日付を入力する

 

まとめ

以上が、スプレッドシートに日付を自動入力する方法3選になります。

日付を入れる、という作業は1回あたりで見れば大した工数ではありませんが、頻繁に行われる作業であるため、積み重ねにより無視できない大きさとなりえます。

また、日付という情報はスケジュール管理などで重要になり、ミスがないようすることが必要であることから、自動化することの意義は大いにあると考えられます。

今回に紹介した方法を活かし、皆様が効率的に作業が進められるようになれば幸いです。

 

この記事が気に入ったら
いいね!しよう

最新情報をお届けします

Twitter で生産性総合研究所をフォローしよう!