GASで一括取得!Googleドライブのファイル一覧を自動作成する術

スポンサーリンク

結論から述べれば、Google Apps Script(GAS)の「DriveApp」クラスまたは高度な「Drive API」を利用し、特定のフォルダ内にある全ファイルの情報を取得してGoogleスプレッドシートへ出力するスクリプトを構築することが、2026年現在のビジネス環境において最も効率的かつ正確な解決策である。この方法を導入すれば、ファイル名、閲覧URL、最終更新日、オーナー、ファイルサイズ、MIMEタイプといった詳細なメタデータを数秒で一覧化でき、手作業による転記ミスや数時間におよぶ管理工数を完全に排除できる。

ビジネス現場において、Googleドライブは共有ストレージとして不可欠なインフラだが、プロジェクトの長期化や組織の拡大に伴い「どこに、何のファイルがあるか把握できない」という、いわゆる「情報の墓場」化が進むケースは少なくない。100個、1,000個といった単位のファイルを一つずつコピー&ペーストしてリスト化するのは現実的ではなく、管理の属人化や検索コストの増大は、チームの生産性を著しく低下させる。本記事では、非エンジニアでも導入可能な、Googleドライブのファイル一覧を自動生成し、常に最新の状態に同期させる具体的な手法を詳説する。

スポンサーリンク

なぜGASによるファイル一覧の自動作成が必要なのか

2026年現在においても、Googleドライブの標準機能には、フォルダ内のファイル構造をCSVやExcel形式で直接エクスポートする機能は備わっていない。そのため、以下のような課題を抱えるユーザーにとって、GASによる自動化は劇的な業務改善(DX)の基盤となる。

  • 棚卸し業務の圧倒的効率化: 四半期ごとのファイル整理や不要ファイルの抽出にかかる時間を95%以上削減できる。
  • ガバナンス・セキュリティの強化: 外部共有設定が有効になっているファイルや、適切な権限設定がなされていないファイルを一括で検知し、情報漏洩リスクを低減できる。
  • ナレッジマネジメントの高度化: 常に最新のファイルリンク一覧をスプレッドシートで一元管理することで、チーム内の「ファイルを探す時間」をゼロに近づける。

特に、サブフォルダまで含めた階層構造を再帰的に取得する技術や、2026年時点で標準となっている「Drive API v3」を活用した高速取得手法を習得すれば、数万ファイル規模の大規模ストレージ管理も容易となる。次に、具体的な構築手順を解説する。

ステップバイステップ:ファイル一覧自動取得スクリプトの構築

以下の手順に従うことで、初心者でも短時間で実用的なファイル一覧作成ツールを完成させることができる。

Step 1:スプレッドシートの準備とスクリプトエディタの起動

まずは、情報を出力するためのGoogleスプレッドシートを新規作成する。シートの1行目(見出し行)に「ファイル名」「URL」「最終更新日」「オーナー」「ファイルサイズ(KB)」と入力しておく。

  1. スプレッドシートの上部メニューから「拡張機能」→「Apps Script」を選択する。
  2. プロジェクト名を「GoogleDriveファイル一覧取得」等に変更し、エディタにデフォルトで記述されている myFunction を削除して、以下のコードを貼り付ける準備をする。

Step 2:GASコードの記述(DriveApp版)

以下のコードは、特定のフォルダ内にあるファイルを取得し、二次元配列を用いてスプレッドシートへ一括書き出しを行う最適化された構成である。フォルダID(URLの folders/ 以降の文字列)を各自の環境に合わせて書き換える必要がある。

/**
 * 特定フォルダ内のファイル一覧を取得し、シートに出力する
 */
function getFileList() {
  const folderId = 'ここにフォルダIDを入力'; // 対象フォルダのIDを記入
  const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  const folder = DriveApp.getFolderById(folderId);
  const files = folder.getFiles();
  
  const output = [];
  
  while (files.hasNext()) {
    const file = files.next();
    // 共有ドライブ等でオーナーが取得できない場合の例外処理
    let owner = "不明";
    try {
      owner = file.getOwner() ? file.getOwner().getName() : "共有ドライブ";
    } catch (e) {
      owner = "アクセス権なし";
    }

    output.push([
      file.getName(),
      file.getUrl(),
      Utilities.formatDate(file.getLastUpdated(), "JST", "yyyy-MM-dd HH:mm:ss"),
      owner,
      Math.round(file.getSize() / 1024) // KB単位
    ]);
  }
  
  if (output.length > 0) {
    // 既存データのクリア(2行目以降)
    if (sheet.getLastRow() > 1) {
      sheet.getRange(2, 1, sheet.getLastRow() - 1, sheet.getLastColumn()).clearContent();
    }
    // スプレッドシートへ一括書き出し
    sheet.getRange(2, 1, output.length, output[0].length).setValues(output);
    console.log(`${output.length}件のファイル情報を取得しました。`);
  } else {
    console.log("ファイルが見つかりませんでした。");
  }
}

Step 3:権限承認と実行

  1. エディタ上部の「実行」ボタンをクリックする。
  2. 「承認が必要」というダイアログが表示されるため、「権限を確認」を選択し、自分のGoogleアカウントを選択する。
  3. 「このアプリは Google で確認されていません」という警告が出た場合は、左下の「詳細」をクリックし、一番下の「(プロジェクト名)に移動(安全ではない)」をクリックして進む。
  4. 「許可」をクリックするとスクリプトが実行される。完了後、スプレッドシートにデータが反映されていることを確認する。

Step 4:応用編(サブフォルダの再帰的取得)

実際の運用では、指定したフォルダ直下だけでなく、その中にある「子フォルダ」「孫フォルダ」内の全ファイルも網羅したい場合が多い。その場合は、関数が自分自身を呼び出す「再帰処理」を実装する。これにより、フォルダ階層がどれほど深くても、全ファイルを一網打尽にリストアップすることが可能になる。これはIT資産管理において必須のテクニックである。

運用上の注意点と制限事項(2026年最新版)

GASでファイル一覧を取得する際には、Googleが設定している「クォータ(制限)」を正しく理解しておく必要がある。

  • 実行時間制限(6分の壁): 1回の実行時間は、個人用アカウント(@gmail.com)では最大6分間、Google Workspace(Business以上)では最大30分間である。数千〜数万件のファイルを処理する場合、この制限に抵触するため「ContinuationToken」を用いた中断・再開処理の実装が必要となる。
  • 情報の鮮度と自動化: 常に最新の状態を保つには、GASエディタ左側の時計アイコン(トリガー)から、「時間主導型トリガー」を設定せよ。「毎日午前0時〜1時」に実行するように設定すれば、完全無人でのファイル台帳更新が実現する。
  • Drive APIの活用: さらに高速な処理や詳細な検索(「特定の日時以降に更新されたPDFだけ」など)が必要な場合は、拡張サービスから「Drive API v3」を有効化することを推奨する。

以上の手法を導入することで、Googleドライブの管理コストは最小化される。手作業による不毛な「リスト作り」から解放され、本来注力すべきデータ分析やクリエイティブな意思決定にリソースを集中させることが可能となるはずだ。

核心となる「高速化」と「配列操作」の重要性

Google Apps Scriptを用いた自動化において、初心者が陥りやすい罠は、ループの中で setValue()(1セルずつ書き込む)を繰り返すことである。これはGoogleのサーバーとの通信回数を増大させ、処理時間を極端に遅くする原因となる。「二次元配列にすべてのデータを格納し、最後に一度だけ setValues() で書き出す」という手法こそが、実務レベルのスクリプトにおける鉄則である。

Drive API(Advanced Service)による限界突破

2026年のエンタープライズ環境では、標準の DriveApp よりも高速で詳細な制御が可能な Drive API (Advanced Service) の利用が標準化している。これを利用するメリットは以下の通りである。

  • Partial Response(部分応答)の活用: fields パラメータを指定することで、ファイル名やIDなど必要なデータのみをサーバーから受信できるため、メモリ消費を劇的に抑えられる。
  • 高度なクエリ検索: q パラメータを使用し、「特定の拡張子」「ゴミ箱に入っていないもの」「特定の共有設定を持つもの」などをサーバーサイドでフィルタリングして取得できる。
  • 共有ドライブの完全サポート: 大規模組織で利用される共有ドライブ(Shared Drives)内のファイル取得において、より安定した挙動を示す。

Googleの公式ドキュメントによれば、Drive API v3への移行により、レスポンス速度とデータ構造の整理が一段と進んでいる。大規模なDXプロジェクトにおいて、ドライブ内の「野良ファイル」調査やストレージ容量の最適化を行う際には、このDrive APIの活用が事実上のグローバルスタンダードとなっているのだ。

まとめ:自動化がもたらす未来

GASによるファイル一覧の自動作成は、単なる利便性の向上に留まらず、組織の「デジタル資産の可視化」を実現する重要な一歩である。一度スクリプトを構築してしまえば、それは24時間365日休まずに働く「デジタル秘書」となり、管理者の負担をゼロにする。

読者が次に取るべき行動は、まずテストフォルダで本記事のコードを走らせてみることである。そして、業務要件に合わせて「ファイル形式(MIMEタイプ)」や「閲覧権限ユーザー」などの取得項目をカスタマイズしてほしい。一歩踏み出した先には、煩雑な管理業務から解放された、本来あるべき知的生産性の高いワークスタイルが待っている。

コメント

タイトルとURLをコピーしました