技術ブログ

GASでGoogle Driveを自動整理!煩雑なファイルをスッキリさせよう

/ 初心者向け

GASでGoogle Driveを自動整理!煩雑なファイルをスッキリさせよう

Google Driveのファイル整理、もう悩まない!GASで自動化への道

Google Drive、便利ですよね。しかし、時間が経つにつれてファイルが溜まり、どこに何があるかわからなくなってしまう…そんな経験はありませんか?手作業での整理は時間もかかり、正直面倒です。そこで今回は、Google Apps Script(GAS)を使って、Google Driveのファイル整理を自動化する方法をご紹介します。

GASは、Google Workspaceの様々なサービスを連携させ、業務を自動化できるJavaScriptベースのスクリプト言語です。プログラミング経験が浅くても、少しずつ学んでいけば強力な味方になってくれます。

1.GASでできること:Google Drive自動整理の具体例

GASを使えば、以下のような様々なファイル整理タスクを自動化できます。

  • 特定のフォルダへの移動: アップロードされたファイルの種類や作成日時によって、自動的に指定フォルダに移動させる。
  • 不要ファイルの削除: 指定期間以上更新されていないファイルや、重複ファイルを自動的に見つけて削除する。
  • ファイル名の変更: ファイル名に日付や連番を自動的に付与する。
  • フォルダの自動作成: 月ごとやプロジェクトごとにフォルダを自動で作成し、ファイルを振り分ける。
  • 共有設定の管理: 特定のファイルやフォルダの共有設定を自動で確認・変更する。

今回は、最も基本的な「特定のフォルダへの移動」と「不要ファイルの削除」に焦点を当てて解説します。

2.GASの基本:Google Driveにアクセスしてみよう

まずは、GASからGoogle Driveにアクセスするための基本的なコードを見ていきましょう。

2.1GASエディタの開き方

1. Google Driveを開きます。

2. 左上の「+新規」ボタンをクリックし、「その他」→「Google Apps Script」を選択します。

これでGASエディタが開きます。

2.2 ファイル一覧を取得するスクリプト

以下のコードは、Google Driveのルートフォルダ(マイドライブ)にあるファイルとフォルダの名前をログに出力します。

function listFilesInRootFolder() {
  var folders = DriveApp.getFolders(); // ルートフォルダを取得
  while (folders.hasNext()) {
    var folder = folders.next();
    Logger.log('フォルダ名: ' + folder.getName());

    var files = folder.getFiles(); // フォルダ内のファイルを取得
    while (files.hasNext()) {
      var file = files.next();
      Logger.log('  ファイル名: ' + file.getName());
    }
  }
}

このコードをGASエディタに貼り付け、「▶」ボタンで実行してみてください。実行後、「表示」→「ログ」で結果を確認できます。

3.実践!GASでGoogle Driveを自動整理

3.1 特定のフォルダへファイルを自動移動させる

例えば、「請求書」という名前のフォルダに、ファイル名に「請求書」という単語が含まれるファイルをすべて移動させたい場合を考えます。

function organizeFiles() {
  var rootFolder = DriveApp.getRootFolder(); // マイドライブ
  var targetFolderName = "請求書"; // 移動先のフォルダ名
  var targetFolder = DriveApp.getFoldersByName(targetFolderName);

  // ターゲットフォルダが存在しない場合は作成
  if (!targetFolder.hasNext()) {
    targetFolder = rootFolder.createFolder(targetFolderName);
  } else {
    targetFolder = targetFolder.next(); // 既存のフォルダを取得
  }

  var files = rootFolder.getFiles();
  while (files.hasNext()) {
    var file = files.next();
    var fileName = file.getName();

    // ファイル名に「請求書」が含まれているかチェック
    if (fileName.includes("請求書")) {
      // ターゲットフォルダへ移動
      targetFolder.addFile(file);
      Logger.log(fileName + " を " + targetFolderName + " フォルダに移動しました。");
    }
  }
}

このスクリプトを実行すると、マイドライブ直下にあるファイルのうち、ファイル名に「請求書」を含むものが「請求書」フォルダに移動します。

3.2 不要なファイルを削除する(例:30日以上更新のないファイル)

定期的に古いファイルを削除することで、ストレージ容量を節約できます。

function deleteOldFiles() {
  var thirtyDaysAgo = new Date();
  thirtyDaysAgo.setDate(thirtyDaysAgo.getDate() - 30);

  var files = DriveApp.getRootFolder().getFiles();
  while (files.hasNext()) {
    var file = files.next();
    var lastUpdated = file.getLastUpdated();

    if (lastUpdated < thirtyDaysAgo) {
      file.setTrashed(true); // ファイルをゴミ箱へ移動(削除)
      Logger.log(file.getName() + " を削除しました(30日以上更新なし)。");
    }
  }
}

このスクリプトは、30日以上更新されていないファイルをゴミ箱に移動します。ゴミ箱も定期的に空にすることを忘れないようにしましょう。

4.自動実行の設定

これらのスクリプトを定期的に実行することで、手動での整理作業をなくすことができます。

1. GASエディタの左側にある「時計」アイコン(トリガー)をクリックします。

2. 右下にある「トリガーを追加」ボタンをクリックします。

3. 「実行する関数を選択」で、実行したい関数(例:organizeFiles)を選択します。

4. 「実行するデプロイを選択」は「ヘッド」のままにします。

5. 「イベントのソースを選択」で、「時間主導型」を選択します。

6. 「時間間隔の選択」で、実行したい頻度(例:「1日ごと」「1週間ごと」など)を選択します。

7. 「保存」をクリックします。

これで、設定した時間に自動でスクリプトが実行されるようになります。

まとめ

Google Driveのファイル整理は、GASを使えば驚くほど効率化できます。今回ご紹介した以外にも、GASでできることはたくさんあります。ぜひ、ご自身のGoogle Driveの状況に合わせて、色々なスクリプトを試してみてください。最初は簡単なものから始め、徐々に複雑な処理に挑戦していくのがおすすめです。GASを使いこなして、快適なGoogle Driveライフを送りましょう!

GAS自動化の導入相談

請求書PDF作成、Gmail自動送信、Slack通知、スプレッドシート連携などを業務に合わせて実装できます。

請求書自動生成ツールを見る / SNS自動投稿ツールを見る