Google Apps ScriptでGoogleドライブ内のファイル一覧をスプレッドシートに出力する方法

NO IMAGE

はじめに

Google ドライブを長く使っていると、どこにどんなファイルがあるのか分からなくなることがありますよね。
特に、チームで共有しているドライブでは、ファイルが増えて管理が大変になることも。

そこで、Google Apps Script(GAS)を使って、Google ドライブ内のファイル一覧をスプレッドシートに自動記録するスクリプトを作成しました。
このスクリプトを使えば、ドライブ内のファイルを整理しやすくなり、不要なファイルを見つけるのにも役立ちます。

スクリプトの概要

このスクリプトは以下の処理を行います。

  1. 指定したフォルダ内のファイル一覧を取得
  2. スプレッドシートにファイル名、URL、種類、作成日を記録
  3. 定期的に実行して最新のファイル一覧を管理

スクリプトのコード

以下のコードをGoogle Apps Scriptのエディタに貼り付けてください。

function listDriveFiles() {
  var folderId = "your-folder-id-here"; // 取得したいフォルダのIDを指定
  var folder = DriveApp.getFolderById(folderId);
  var files = folder.getFiles();
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  
  // ヘッダーを設定(最初の実行時のみ)
  if (sheet.getLastRow() === 0) {
    sheet.appendRow(["ファイル名", "URL", "種類", "作成日"]);
  } else {
    sheet.clear(); // 既存のデータをクリア
    sheet.appendRow(["ファイル名", "URL", "種類", "作成日"]);
  }

  while (files.hasNext()) {
    var file = files.next();
    var name = file.getName();
    var url = file.getUrl();
    var type = file.getMimeType();
    var createdDate = file.getDateCreated();
    
    sheet.appendRow([name, url, type, createdDate]);
  }

  Logger.log("Googleドライブのファイル一覧をスプレッドシートに記録しました。");
}

スクリプトの説明

  1. listDriveFiles()
    • 指定したGoogle ドライブのフォルダIDを取得
    • フォルダ内のすべてのファイル情報(ファイル名、URL、種類、作成日)をスプレッドシートに記録
    • 既存のデータを削除して最新の情報に更新

使い方

  1. Google スプレッドシートを作成
    • Google スプレッドシートを開く
    • 「拡張機能」→「Apps Script」を開く
  2. スクリプトを設定
    • 上記のコードを貼り付けて保存
    • folderId に対象のフォルダIDを入力(フォルダを右クリック→「リンクを取得」→ URLの末尾のID部分をコピー)
  3. スクリプトを実行
    • Apps Script のエディタで listDriveFiles() を実行
  4. スプレッドシートを確認
    • ファイル名、URL、種類、作成日が一覧表示されていることを確認

スケジュール実行(自動更新)

フォルダの最新情報を定期的に取得する場合は、トリガーを設定します。

  1. Google Apps Script のエディタで「編集」→「現在のプロジェクトのトリガー」を開く
  2. 「トリガーを追加」ボタンを押す
  3. 関数を listDriveFiles に設定
  4. 実行タイミングを「時間主導型」にして、1日ごと・1時間ごとなどに設定

応用:サブフォルダも含めて取得する

サブフォルダのファイルもリスト化したい場合は、以下のように再帰的にフォルダを探索する関数を作成してください。

function listDriveFilesRecursive(folder, sheet) {
  var files = folder.getFiles();
  while (files.hasNext()) {
    var file = files.next();
    sheet.appendRow([file.getName(), file.getUrl(), file.getMimeType(), file.getDateCreated()]);
  }

  var subFolders = folder.getFolders();
  while (subFolders.hasNext()) {
    var subFolder = subFolders.next();
    listDriveFilesRecursive(subFolder, sheet);
  }
}

function listAllDriveFiles() {
  var folderId = "your-folder-id-here"; // 取得したいフォルダのIDを指定
  var folder = DriveApp.getFolderById(folderId);
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  
  sheet.clear();
  sheet.appendRow(["ファイル名", "URL", "種類", "作成日"]);
  
  listDriveFilesRecursive(folder, sheet);
  
  Logger.log("Googleドライブのフォルダ全体のファイル一覧をスプレッドシートに記録しました。");
}

おわりに

このスクリプトを使えば、Google ドライブ内のファイルを整理しやすくなり、ファイル管理が簡単になります。
業務でのファイル管理や定期的なバックアップとして活用してみてください!

GASカテゴリの最新記事