アンケートフォームで作成したスプレッドシートのバックアップ

805 views
Skip to first unread message

にんまりpapa

unread,
Aug 24, 2018, 3:46:59 AM8/24/18
to Google Apps API Japan
アンケートフォームを使用しスプレッドシートにデータを定期的に収集しています。

バックアップをスクリプトで定期的に取りたいのですが、アンケートフォームもバックアップされてしまいます。
スプレッドシートは指定したフォルダにバックアップできているのですが、フォームが指定したフォルダではなくバックアップ元のフォルダにコピーされ邪魔になります。

1.スプレッドシートのみをバックアップする方法はないでしょうか?

2.フォームも必ずバックアップされてしまうのであれば、フォームのバックアップ先フォルダを指定する方法を教えて下さい。

以上、よろしくお願い致します。

スクリプトは以下です。

function Backup() {  
  var file = DriveApp.getFileById('XXXXXXXXXXXXXXXX');//バックアップしたいファイル
  var folder = DriveApp.getFolderById('YYYYYYYYYYYYYYYYYYYYYYYY');  // ここで指定したフォルダにファイルが入る
  file.makeCopy(file.getName()+'-'+Utilities.formatDate(new Date(), 'JST', 'yyyy-MM-dd-HH'),folder);   
}



Naoki Koreeda

unread,
Sep 7, 2018, 1:41:14 AM9/7/18
to Google Apps API Japan
にんまりpapa さん

コレエダといいます。

試してみたところ、確かに再現しますね。
バグなのか仕様なのか。。

解決策として、スプレッドシート丸ごとではなく、中身だけをバックアップするのはいかがでしょうか。
やり方はいろいろあると思いますが、一例として、あらかじめ空のスプレッドシートを用意しておき、それにバックアップ元のシートをコピーして移す方法を載せておきます。
参考になれば幸いです!

function Backup() {
  var COPY_FROM_FILE_ID = 'XXXXXXXXXXXXXXXXXXXXX'; // バックアップ対象ファイルID
  var COPY_TO_DIR_ID = 'YYYYYYYYYYYYYYYYYYYYYY'; // バックアップ先フォルダID
  var TEMPLATE_FILE_ID = 'ZZZZZZZZZZZZZZZZZZZZZZZZ'; // コピー用の空のスプレッドシートID
  
  var file = DriveApp.getFileById(COPY_FROM_FILE_ID); // バックアップ対象ファイル
  var folder = DriveApp.getFolderById(COPY_TO_DIR_ID); // バックアップ先フォルダ
  var templateFile = DriveApp.getFileById(TEMPLATE_FILE_ID); // コピー用の空のスプレッドシート
  // テンプレートファイルを指定の名称でコピーする
  var copyToFile = templateFile.makeCopy(file.getName() + '-' + Utilities.formatDate(new Date(), 'JST', 'yyyy-MM-dd-HH'), folder);
  
  var copyToSpreadSheet = SpreadsheetApp.openById(copyToFile.getId()); // バックアップ先スプレッドシート
  var copyFromSheet = SpreadsheetApp.openById(COPY_FROM_FILE_ID).getSheets()[0]; // バックアップ対象スプレッドシートの1シート目
  // バックアップ対象シートを追加 (2シート目に追加される)
  copyFromSheet.copyTo(copyToSpreadSheet);
  
  var copyToSheet = SpreadsheetApp.openById(copyToFile.getId()).getSheets()[0]; // バックアップ先スプレッドシートの1シート目
  // 1枚目は空のシートなので削除
  copyToSpreadSheet.deleteSheet(copyToSheet);
}

2018年8月24日金曜日 16時46分59秒 UTC+9 にんまりpapa:
Reply all
Reply to author
Forward
0 new messages