チームで働いていると、データ更新を自分以外の人がやる場合がありますよね。
「この数字は最新版に更新されているのかな?」
「いつ更新したんだろう?」
そう思って都度確認するのも手間だし、チャットでそんなことまでやり取りしてると大事な部分が流れていってしまう。何か更新日時を取得できるような便利な方法がないだろうかと考えたときに思い至ったのがGASでした。
ということで今回はスプレッドシートで更新日時を自動取得する方法をご紹介します。
GASで更新日時を自動取得する アウトプットイメージ
今回はこのような行を変更した日時が特定の列に勝手に反映されるような仕組みを作りたいと思います。
GASで更新日時を自動取得する方法
それではGASで更新日時を自動取得する方法をご紹介していきます。
スクリプトエディタを立ち上げる
メニューの「ツール」から「スクリプトエディタ」を選びます。
スクリプトを貼り付ける
今回貼り付けるスクリプトは以下の記事を参考に少し修正を加えています。
function insertLastUpdated() {
//アクティブなスプレッドシートの特定のシートを指定
var ss = SpreadsheetApp.getActive().getSheetByName('test');
//アクティブなセルの行数を取得
var currentRow = ss.getActiveCell().getRow();
//アクティブなセルの値を取得
var currentCell = ss.getActiveCell().getValue();
//更新日をいれる列をstringで指定、B+currentRowでB列のセルを指定できる
var updateRange = ss.getRange('B' + currentRow);
Logger.log(updateRange);
if(currentRow>1){
if(currentCell) {
updateRange.setValue(new Date());
}
}
}
このスクリプトを以下のように貼り付けます。
なお、今回はB列に更新日時を入れるため、9行目は「B」となっていますが、ここは更新日時を入れたい任意の列を指定頂ければ大丈夫です。
あとは左上の保存ボタンを押して、プロジェクト名を入力したら完了です。
トリガーを設定する
続いて、この記事で紹介している方法でトリガーを設定します。設定項目としては以下画像のように設定します。
表示書式を変更する
最後に、実際に表示されるときの書式を変更します。
2行目以降に反映するようなスクリプトになっていますので、2行目以降の任意のセルに文字を入れてみます。
すると、更新日が表示されますよね。
ただ、そのままだと日付のみの表示になっていると思うので、 ツールバーの「123」となっているところから「表示形式の詳細設定」>「その他の日付や時刻の形式」を選択します。
自由に日時の書式を変えられるので、以下赤枠部分より編集していきます。
今回は、その日のいつ更新したかを知りたいので、ちゃんと時・分まで入力して「適用」をクリックします。
以上で設定は完了です!
まとめ
今回はスプレッドシートで更新日時を自動取得する方法をご紹介しました。
今回の内容は一歩間違えば監視ツールみたいになってしましますが笑、履歴を可視化できるという点では小さくても1つの作業・手間を省ける方法ではありますのでぜひご活用ください。
なお特定の列の更新のみを取得したい場合もあるかと思います。
その場合の記述方法は以下記事にまとめましたのでぜひご覧ください。