ADVERTISEMENT

【Googleスプレッドシート】Googleドライブのファイル一覧を自動取得!フォルダ内の更新監視

【Googleスプレッドシート】Googleドライブのファイル一覧を自動取得!フォルダ内の更新監視
🛡️ 超解決

Googleドライブのフォルダ内に多数のファイルがあると、どれが更新されたかを把握するのが大変です。特にチームで共有しているフォルダでは、新しいファイルが追加されたり、既存のファイルが編集されたりするたびに、手動で確認するのは非効率です。この記事では、GoogleスプレッドシートとApps Scriptを組み合わせて、フォルダ内のファイル一覧を自動的に取得し、更新監視する方法を解説します。スクリプトを一度設定すれば、あとはトリガーが定期的に実行してくれるため、最新のファイル情報を常にシートで確認できるようになります。

【要点】Googleドライブのフォルダ内ファイル一覧を自動取得し更新監視する方法

  • Apps ScriptのDriveAppクラス: フォルダ内のファイル情報を取得するスクリプトを作成します。
  • 時間主導型トリガー: 定期的にスクリプトを実行し、シートのデータを自動更新します。
  • 更新監視シートの設計: 新旧データの比較や変化を可視化する列を追加します。

ADVERTISEMENT

Apps Scriptでファイル一覧を自動取得する仕組み

Googleドライブのフォルダ内のファイル情報をスプレッドシートに取り込むには、Apps ScriptのDriveAppクラスを使います。DriveAppは、フォルダやファイルの取得、検索、作成などをプログラムから操作できる機能です。今回のスクリプトでは、特定のフォルダIDを指定し、そのフォルダ内の全ファイルをループ処理して、ファイル名、最終更新日時、作成者、サイズ、ファイルIDなどの情報を取得します。取得したデータは二次元配列に格納し、スプレッドシートの指定範囲に一括出力します。その後、時間主導型トリガーを設定することで、定期的に同じスクリプトが実行され、シートの内容が自動的に更新されます。これにより、フォルダ内のファイル追加や編集をリアルタイムに近い形で監視できるようになります。

ファイル一覧を自動取得する具体的な手順

Apps Scriptエディタを開く

  1. スプレッドシートを開く
    ファイル一覧を出力したいスプレッドシートを新規作成するか、既存のものを開きます。
  2. 拡張機能メニューからApps Scriptを起動する
    メニューバーの「拡張機能」をクリックし、表示されたメニューから「Apps Script」を選択します。
  3. プロジェクト名を変更する
    開いたスクリプトエディタの左上に「無題のプロジェクト」と表示されているので、クリックして「ドライブファイル一覧取得」などに変更します。

スクリプトを記述する

  1. 関数を定義する
    デフォルトで表示されているコードをすべて削除し、以下のスクリプトを貼り付けます。
function listFilesInFolder() {
  var folderId = 'YOUR_FOLDER_ID'; // 実際のフォルダIDに置き換え
  var folder = DriveApp.getFolderById(folderId);
  var files = folder.getFiles();
  var data = [];
  data.push(['ファイル名', '最終更新日時', '作成者', 'サイズ(bytes)', 'ファイルID', 'URL']);
  while (files.hasNext()) {
    var file = files.next();
    data.push([
      file.getName(),
      file.getLastUpdated(),
      file.getOwner().getName(),
      file.getSize(),
      file.getId(),
      file.getUrl()
    ]);
  }
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  sheet.clear();
  sheet.getRange(1, 1, data.length, data[0].length).setValues(data);
}
  1. フォルダIDを指定する
    監視したいフォルダをGoogleドライブで開き、URLからフォルダIDをコピーします。URLは「https://drive.google.com/drive/folders/」の後に続く英数字の部分です。それをスクリプト内の’YOUR_FOLDER_ID’と置き換えます。
  2. スクリプトを保存する
    Ctrl+S(MacはCmd+S)で保存します。または、エディタ上部のフロッピーディスクアイコンをクリックします。

初回実行と権限の承認

  1. 関数を選択して実行する
    エディタ上部の関数ドロップダウンで「listFilesInFolder」を選択し、再生ボタンをクリックします。
  2. 権限を承認する
    初回実行時には「承認が必要です」というダイアログが表示されるので、「権限を確認」をクリックします。自分のGoogleアカウントを選択し、スクリプトが「Google ドライブの表示・管理」を要求するので「許可」します。この許可は一度行えば以降は不要です。
  3. シートにデータが出力されることを確認する
    権限承認後、スクリプトが実行され、アクティブなシートにファイル一覧が書き込まれます。見出し行も含めて自動的にフォーマットされます。

トリガーを設定して自動更新する

  1. Apps Scriptエディタでトリガー画面を開く
    左側のメニューアイコン(時計マーク)をクリックします。または「編集」→「現在のプロジェクトのトリガー」を選択します。
  2. トリガーを追加する
    右下の「トリガーを追加」ボタンをクリックします。
  3. 実行する関数とイベントの種類を設定する
    「実行する関数」で「listFilesInFolder」を選択します。「イベントのソース」は「時間主導型」を選択し、「時間ベースのトリガーのタイプ」で「特定の時間」または「分ごと」「時間ごと」など好みの間隔を選びます。例えば「1時間おき」にすると、定期的にファイル一覧が更新されます。
  4. エラー通知の設定
    「エラー通知」は「すぐに通知を受け取る」にしておくと、スクリプトが失敗したときにメールで知らせてくれます。
  5. 保存してトリガーを有効にする
    設定後、「保存」をクリックします。これでトリガーが有効になり、指定した間隔でスクリプトが自動実行されます。

ファイル更新監視のためのシート設計

単にファイル一覧を出力するだけでは、どのファイルが更新されたかが一目で分かりません。そこで、更新監視用に以下の工夫をすると便利です。

  • タイムスタンプ列を追加する: スクリプトの実行日時を記録する列を用意し、前回取得時との差分を確認できるようにします。
  • 条件付き書式で更新を強調する: 「最終更新日時」が前回取得時よりも新しい場合にセルを色付けするルールを設定します。
  • 別シートに履歴を保存する: トリガー実行のたびにスナップショットを別シートに追記することで、ファイルの変更履歴を残せます。

ADVERTISEMENT

よくあるトラブルと注意点

フォルダIDの指定を間違える

フォルダIDはURLの一部を正確にコピーしてください。間違えるとフォルダが見つからずエラーになります。また、フォルダが自分の所有物でない場合はアクセス権限が必要です。共有フォルダであっても、スクリプトを実行するアカウントがそのフォルダに対して少なくとも閲覧権限を持っていることを確認してください。

スクリプトの実行権限が不足する

初回実行時の権限承認をスキップすると、スクリプトは実行できません。承認画面で必要なスコープ(Googleドライブへのアクセス)を許可してください。もし「このアプリは確認されていません」と表示された場合は、詳細設定から「安全でないページに移動」を選択して進むこともできますが、信頼できるスクリプトであることを確認してから行ってください。

トリガーの実行制限に注意する

Apps Scriptのトリガーには、1日あたりの実行回数や実行時間に制限があります。無料アカウントでは、時間主導型トリガーは1時間に1回程度が安全です。また、スクリプト内で大量のファイルを処理する場合は、実行時間が6分を超えないように注意してください。ファイル数が多い場合は、分割処理やバッチ処理を検討しましょう。

シートのフォーマットが崩れる

スクリプト内で sheet.clear() を使用すると、シート上のすべての内容と書式が削除されます。もし見出しの色や列幅など書式を保ちたい場合は、 clear() の代わりに内容だけをクリアする sheet.clearContents() を使用するか、書式を再度適用するスクリプトを追加してください。

手動確認と自動監視の比較

項目 手動でフォルダを確認する方法 Apps Scriptで自動取得する方法
更新頻度 自分がフォルダを開くたびに確認できる 設定した間隔(例:1時間ごと)で自動更新
手間 毎回ブラウザを開いてフォルダを閲覧する必要がある 一度スクリプトを設定すれば、以降は自動で実行される
取得できる情報 アイコン、名前、更新日時程度を視覚的に把握 ファイル名、更新日時、作成者、サイズ、URLなどを一覧化
過去の履歴 手動でメモを取らない限り残らない トリガー実行ごとにデータを別シートに保存すれば履歴管理できる
エラー対応 見落としが発生しやすい エラー通知を設定すれば、異常をすぐに把握可能

まとめ

この記事では、GoogleスプレッドシートとApps Scriptを使って、Googleドライブのフォルダ内ファイル一覧を自動取得し、更新監視する方法を解説しました。基本的なスクリプトを導入することで、フォルダ内のファイルの追加や編集をリアルタイムに近い形で追跡できるようになります。さらに、履歴シートの作成や条件付き書式の活用で、より高度な監視も可能です。応用として、更新があった際にメール通知を送るスクリプトを追加すれば、チーム全体で変更を共有できます。ぜひ、自分のフォルダで試して、ファイル管理の効率を高めてください。


ADVERTISEMENT

この記事の監修者
✍️

超解決 第一編集部

疑問解決ポータル「超解決」の編集チーム。正確な検証と、現場視点での伝わりやすい解説を心がけています。