Google Spreadsheet(スプレッドシート)で変更履歴を即時シートに反映する方法

Googleスプレッドシート 変更履歴表示2
LINEで送る
Pocket

こんにちは。ひとりで.comです。

今日はGoogleスプレッドシートで変更履歴をシート上に即時反映するスクリプトについて紹介していきたいと思います。

スプレッドシートで変更履歴をシートに記述するスクリプト

以前、Googleスプレッドシートには変更履歴機能があると紹介しました。こちら、過去にどのような変更だ誰によってなされたのか…を確認するのに非常に役立ちます。

また万が一、データに不備が発生した場合も、過去の履歴をもとにその時点に遡って修正することも可能です。この機能をマスターしたら、きっと離れられなくなると思います。笑

 

さて、今日はこれに引き続き、この変更履歴を自動でシート上に吐き出す仕組みを紹介したいと思います。

 

【目次】
1.Google App Script
2.変更履歴をシートに記述するための準備
3.注意事項

 

それでは実際に見ていきましょう。

 

 

1.Google App Script

と、実際に入る前に、今回使う仕組みについて簡単に説明しておきたいと思います。

今回のGoogleスプレッドシートの変更履歴をシート上に表示させるという仕組みについてですが、Google App Scriptという仕組みを用います。

Google App ScriptとはGoogleが提供をしているJavaScriptによって操作するためのスクリプト環境を指します。Exceで言うところのマクロ…に該当します(マクロがわからない方はググってくださいw)

このApp Scriptを使ってプログラムを組むと様々な事ができるようになります。今回はその機能を使って変更履歴の仕組みを実現したいと思います。

 

2.変更履歴をシートに記述する

では、実際にどのように設定するか見ていきましょう。

 

 

(1)Logというシート名のシートを新たに作成する。

Googleスプレッドシート 変更履歴表示1
Googleスプレッドシート 変更履歴表示1

 

 

(2)Google App Scriptにコードを入れる。

Google App Scriptは以下のメニューから選びます。[メニュー]から[ツール]、そして[スクリプトエディタ]を選択します。

Googleスプレッドシート 変更履歴表示2
Googleスプレッドシート 変更履歴表示2

 

 

すると…別画面で以下のような画面がでてきます。

Googleスプレッドシート 変更履歴表示3
Googleスプレッドシート 変更履歴表示3

 

 

この画面が出てきたら、

のコードを消した上で、以下のコードをコピーして貼り付けてください。

 

 

貼り付けが完了したら、[保存ボタン]を押して、このプロジェクトの名前を決めてください(プロジェクトの名前は何でも構いません。ここでは「Log」というプロジェクト名にしております。

Googleスプレッドシート 変更履歴表示4
Googleスプレッドシート 変更履歴表示4

 

 

(3)トリガーを設定する
トリガーとは、「このスクリプトを動かすタイミング」を表します。何をした時にこのスクリプトを動かしますか?ということです。 このトリガーは以下のように[リソース]から[現在のプロジェクトのトリガー]を選択し設定します。

Googleスプレッドシート 変更履歴表示6
Googleスプレッドシート 変更履歴表示6

 

 

どこでどういう時に何を実行するのかを設定します。ここでは、先ほど設定した、
[onMyEdit]というスクリプトを[スプレッドシートから][編集時]として保存します。

Googleスプレッドシート 変更履歴表示7
Googleスプレッドシート 変更履歴表示7

 

 

(4)Googleスプレッドシートで確認してみる
スプレッドシートのシートに「aaa」と記載してみました。すると、A列から日時、時間、変更者、シート名、行、列、加えた文字列 の順番で表示され、無事に履歴がシート上に反映されていることを確認できます。

Googleスプレッドシート 変更履歴表示8
Googleスプレッドシート 変更履歴表示8

 

3.注意事項

ここからは、Google App Scriptを使って変更履歴を表示するときの注意事項について書きたいと思います。このGoogle App Scriptはgmailでも許可さえ出してしまえば、個人メールが履歴上に表示されてしまいます。

※今回の図ではメールアドレスは省いています。

従って、意図せず第三者に対して自身の個人アドレスを漏洩してしまう可能性があります。法人アカウントで、アカウントを見られても問題ない場合は特に問題ないですが、個人メールを使ってこの機能を使う際は充分注意してください。