グーグルAppsスクリプトのDocsList廃止について
ネットショップの運用で使っているGoogleのスプレッドシートを
毎日自動で Google Apps Script でバックアップしていたのですが、
2015年4月22日からエラーのメールが届いてバックアップされなくなっていました。
ReferenceError: 「DocsList」が定義されていません。(行 3、ファイル「コード」)
ググってみたところ、DocsList クラスが4月21日に廃止になったらしく、
DriveApp クラスに変更する必要がありました。
単純に DocsList を DriveApp に変更したところ、
backupフォルダへ移動するところで、(gmailと同じで、ラベルをつけたり外したりしている)
DriveApp クラスには getFolder メソッドがない
というエラーになってしまいました。
そこで、ちょっとググッって新しく書き直してみたので、シェアします。
function backup() { // ファイルをコピー(ファイル名の後ろに年月日を追加) var file = DriveApp.getFileById('ファイルID'); var fileCopied = file.makeCopy( file.getName()+'-'+Utilities.formatDate(new Date(), 'JST', 'yyyy-MM-dd') ); // 指定したフォルダをつける var folder = DriveApp.getFolderById('フォルダID'); folder.addFile(fileCopied); // ルートフォルダを外す DriveApp.getRootFolder().removeFile(fileCopied); } //スプレッドシートにマクロボタンを追加 function onOpen() { var sheet = SpreadsheetApp.getActiveSpreadsheet(); var entries = [ { name : "定期ばっくあっぷ", functionName : "backup" } ]; sheet.addMenu("backup", entries); };
ファイルIDとかフォルダIDというのは、
スプレッドシートやフォルダを開いたときに
ブラウザのURLとして表示されているめちゃくちゃな文字列のことです。
ファイルなら、https://docs.google.com/spreadsheets/d/ファイルID/edit#gid=xxxxx
フォルダーなら、https://drive.google.com/drive/folders/フォルダID
グーグルドライブのフォルダは、gmailと同じで、ラベルをつけたり外したりしているので、
複数のフォルダがついているファイルを片方のフォルダで削除すると両方とも消えることになります。
今まで知らなかったので、なんかおかしいと思ってた挙動が腑に落ちました。
これ、結構知らない人多いですよね?
投稿者プロフィール
最新の投稿
- 未分類2019.07.07株式会社SFGは、6期目になりました。
- 通販2018.05.04入館証IDホルダー+クレジットカードウォレット=GOVOの正規代理店になりました!
- 通販2017.12.22株式会社SFGは窓拭きルンバ!自動窓拭きロボット「Cop Rose X6」の正規代理店になりました!
- 業務日記2017.04.08四期目に突入です。