こんにちは、おかちゃんせんせいです!
今日のテーマは
Googleドライブ内のファイルを一括削除する方法
についてです。
目次
Googleドライブ内のファイルをGASで一括削除できない場合がある?
本当はGASでGoogleドライブ内の特定フォルダーにあるファイルを、定期的に一括削除しようと思っていたのですが、、、
まさかのGASの仕様で削除しようとするとエラーになってしまう事態に直面。
今回のケースでは他のユーザーもGASのマクロを実行し、ファイルを作成するケースがあります。
自分一人だけがGASを使うのであれば問題ないのですが、
いろいろネットで検索して調べてみた内容の通り、他のユーザーが作成したファイルはGASのsetTrashedメソッドで削除しようとするとエラーになってしまうようで。。。
Exception: Access denied: DriveApp.
ただ、どうしても手動で毎回ファイルがたまったら削除をするのだけは避けたい!
定期的に自動で削除してほしい!
――ということで、
そんなときにはPower Automateの出番になります。
Power Automateで実装する
Power Automate(PA)についての記事はこれまでも書いたことがありますが、PAはiPaaSと呼ばれるAPIが公開されている複数のシステムをノーコードで連携することができるアプリです。
Microsoftの無料アカウントでできる内容とできない内容がありますが、今回の内容については無料アカウントでも実装は可能なので、アカウントさえあれば誰でも作成できます。
今回の要件は、
・定期的に実行する
・指定のGoogleドライブ内の指定フォルダーにあるファイルを一括削除する
という2点のみ。
これだけであれば、操作が慣れた人であれば5分もあれば余裕で構築できます。
それぞれのアクションについて解説
まず、繰り返し定期処理をするために、トリガーでは「繰り返し」を選択します。
※パラメーターの設定は要件に合わせて自由に変えてください。
このアクションでは、削除したいファイルのあるGoogleドライブのアカウントに接続する必要があります。
その上で、削除したいファイルのあるフォルダーを指定します。
次に、繰り返し処理を実行するアクションを選択します。
指定するパラメーターは本文です。
続いて、ファイルを削除する条件を指定します。
今回はフォルダ内にあるファイルだけを指定したいので、IsFolderで判定する式を設定します。
IsFolderがtrueの場合にはTrue、falseの場合にはFalseに分岐するようにする。
最後のSTEP.4でFalseに分岐した場合のところに、「ファイルの削除」アクションを追加します。
ファイルはidを指定します。
これで実装完了です。
知って活用できれば、Power Automateによって事務のルーチン作業がとっても楽になります。
人が考えるべきところは無理に自動化する必要はないとは思いますが、考える余地のないところについては自動化を検討してみてはいかがでしょうか。
最後まで読んでいただき、ありがとうございました!