Google Apps Script を使用して、スプレッドシートのデータを暗号化しています。正常に機能していますが、スプレッドシートの便利な改訂履歴により、暗号化前のバージョンを簡単に表示できるため、少し問題があります.
リビジョン履歴を削除する方法、またはそれらがまとめて作成されないようにする方法はありますか?
Google Apps Script を使用して、スプレッドシートのデータを暗号化しています。正常に機能していますが、スプレッドシートの便利な改訂履歴により、暗号化前のバージョンを簡単に表示できるため、少し問題があります.
リビジョン履歴を削除する方法、またはそれらがまとめて作成されないようにする方法はありますか?
いいえ。変更履歴にアクセスするための Drive APIは、特に Google シートのエントリを削除しません。
変更履歴は、編集権限を持つユーザーのみが閲覧できることに注意してください。表示またはコメントのみの権限では、改訂履歴を表示できません。
1 つの解決策は、ユーザーが Google フォームを介して非常に狭い範囲で共有されているシートにデータを送信し、信頼できないユーザーやスクリプトがアクセスできるように、暗号化せずに残している機密性の低いメタデータや集計データをより一般的なシートにコピーするトリガーを設定することです。セル数式 IMPORTRANGE() も機能し、数式を入力する人からアクセス許可を取得するため、元のシートを損なうことなく、制限されたスプレッドシートから制限の少ないスプレッドシートにデータを移動できます。
少し面倒ですが、あなたの要求に近い 2 番目の解決策は、シートを含むドライブ フォルダーへのアクセスをユーザーと外部スクリプトに提供することです。フォルダ スクリプトの ID を使用して、ドライブ APIを介して名前でシートを検索できます。ユーザーは目を使って名前でシートを見つけます。暗号化スクリプトは、暗号化が完了すると、SpreadsheetApp.copy(name)を使用してスプレッドシートをコピーしますこれにより、すべての数式、書式設定、データ、さらにはスクリプトがコピーされますが、改訂履歴はコピーされません。copy() に元のシートと同じ名前を渡します。ドライブ ファイル名は一意である必要はありません。ドライブ API を使用して、新しいスプレッドシートをフォルダーに移動します。既定では、フォルダーの共有を継承する必要があります。再びドライブ API を使用して、元のスプレッドシートを削除します。すべてのユーザーとスクリプトは、特定のフォルダー ID で X という名前のファイルを探していたため、すべてが正確に検索される場所にありましたが、リビジョン履歴は失われています。
残念ながら、Google Apps Script には変更履歴から項目を削除する方法がありません。
すべてのスプレッドシートをコピーし、最初のバージョンに復元してから、スプレッドシートを貼り付けます:)