\無料配布/ サーバー不要 社内ポータル作成キット>

​【脱・手入力】Googleドライブの中身を一瞬で「台帳」にする。ファイル名とURLを自動で書き出す「0円リスト化ツール」

「来週の監査のために、契約書の管理台帳を作っておいて」

「共有フォルダが汚すぎるから、一旦全部リストアップして整理しよう」

​上司は簡単に言いますが、フォルダの中には数百個のファイル。

一つ一つ「名前の変更」を押して、ファイル名をコピーし、エクセルに貼り付ける。

さらに「共有リンク」を取得して、また貼り付ける。

​これを100回繰り返す?

正気の沙汰ではありません。そんなことをしていたら、日が暮れるどころか年が明けてしまいます。

​今回は、Googleドライブの指定したフォルダに入っている全ファイルの「名前」「URL」「更新日」「更新者」を、ボタン一発でスプレッドシートに書き出すツールを作ります。

​数百個のファイルがあろうと、処理時間は数秒。

人間がやるべきなのは、出来上がったリストを見て「どれを捨てるか」判断することだけです。

目次

​1. 何を作るの?(完成イメージ)

  1. ​スプレッドシートに、リスト化したい「GoogleドライブのフォルダID」を入力する。
  2. ​実行ボタンを押す。
  3. ​シートに、ファイルの情報(名前・URL・更新日など)がズラッと書き出される。

​これだけです。シンプルですが、破壊力は抜群です。

​Step 1:台所(スプレッドシート)を準備する

​新規のスプレッドシートを作成し、シート名を「ファイル一覧」に変更してください。(ここ重要!)

そして、1行目に見出しを作ります。

  • A1セル: フォルダID(※ここに入力します)
  • A3セル: ファイル名
  • B3セル: URL
  • C3セル: 最終更新日
  • D3セル: サイズ(KB)

​※2行目は空けておいてください。3行目からデータが書き込まれます。

​Step 2:リスト化したい「フォルダID」を見つける

​ここが今回の最大のポイントです。

Googleドライブを開き、中身をリストアップしたいフォルダの中に入ってください。

​ブラウザのURLバーを見てみましょう。

“https://drive.google.com/drive/folders/1aBcDeFgHiJkLmNoPqRsTuVwXyZ”

こんな感じになっているはずです。

​この末尾の 「folders/」より後ろのぐちゃぐちゃした英数字

これが「フォルダID」です。これをコピーして、スプレッドシートの A1セル に貼り付けてください。

​Step 3:魔法の書(スクリプトエディタ)を開く

​いつもの手順です。

  1. ​スプレッドシートのメニュー「拡張機能」>「Apps Script」。
  2. ​開いた画面の文字を全部消して真っ白にする。

​Step 4:魔法の呪文(コード)をコピペする

​以下のコードをコピーして貼り付けてください。

今回は書き換える必要はありません。そのまま使えます。

function listFilesFromDrive() {
  // ■設定:書き出すシートの名前
  const sheetName = "ファイル一覧"; 
  
  const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(sheetName);
  if (!sheet) {
    Browser.msgBox("シート「" + sheetName + "」が見つかりません。作成してください。");
    return;
  }

  // A1セルに入力された「フォルダID」を読み取る
  const folderId = sheet.getRange("A1").getValue();

  if (!folderId) {
    Browser.msgBox("A1セルにフォルダIDを入力してください。");
    return;
  }

  try {
    // フォルダを取得
    const folder = DriveApp.getFolderById(folderId);
    
    // フォルダ内のすべてのファイルを取得
    const files = folder.getFiles();
    
    // 書き出すデータを貯める箱
    let output = [];

    while (files.hasNext()) {
      const file = files.next();
      output.push([
        file.getName(), // ファイル名
        file.getUrl(),  // URL
        file.getLastUpdated(), // 最終更新日
        Math.round(file.getSize() / 1024) // サイズをKBに変換
      ]);
    }

    // 既に書かれている古いデータをクリア(3行目以降)
    const lastRow = sheet.getLastRow();
    if (lastRow >= 3) {
      sheet.getRange(3, 1, lastRow - 2, 4).clearContent();
    }

    // データがあれば一気に書き出す
    if (output.length > 0) {
      sheet.getRange(3, 1, output.length, output[0].length).setValues(output);
      Browser.msgBox("完了!" + output.length + "個のファイルを書き出しました。");
    } else {
      Browser.msgBox("フォルダの中にファイルが見つかりませんでした。");
    }

  } catch (e) {
    Browser.msgBox("エラーが発生しました。フォルダIDが正しいか確認してください。\n" + e.message);
  }
}

貼り付けたら、フロッピーアイコン(💾)で保存します。

​Step 5:実行ボタンを作る(オプション)

​毎回スクリプト画面を開くのは面倒なので、スプレッドシート上にボタンを作りましょう。

  1. ​スプレッドシートに戻る。
  2. ​メニュー「挿入」>「図形描画」
  3. ​図形ツール(丸や四角)でボタンっぽい絵を描き、テキストボックスで「リスト更新」と書く。
  4. ​「保存して終了」を押すと、シート上に図形が現れます。
  5. ​その図形をクリックし、右上の「︙」>「スクリプトを割り当て」
  6. ​listFilesFromDrive と入力してOK。

​これで、このボタンを押すだけで魔法が発動します!

(※初回のみ「承認」画面が出ます。前回同様に突破してください)

​⚠️ 注意点:この魔法の限界

​このツールは非常に便利ですが、一つだけ弱点があります。

それは「指定したフォルダの直下にあるファイルしか見ない」ということです。

​フォルダの中にさらにフォルダ(サブフォルダ)がある場合、その中身までは見に行きません。

「マトリョーシカ」のように何重にもなったフォルダを、奥底まですべてさらってリスト化するには、「再帰処理(さいきしょり)」という少し高度な魔法が必要です。

​もし「フォルダの中のフォルダ」まで全部リスト化したいなら…

​「ウチの共有ドライブ、フォルダ階層が深すぎて迷宮になってるんだけど……」

「サブフォルダの中身も含めて、数千ファイルを一気に棚卸ししたい」

​そんな時は「うしろぽっけ」にお任せください。

今回紹介したコードを改造して「フォルダ構造を維持したまま全ファイルを洗い出す強力なツール」をご提供します。

​手入力で徹夜する前に、まずはご相談を。

あなたの貴重な時間は、コピペのためではなく、もっとクリエイティブな仕事のためにあるのですから。

\ 複雑なフォルダ階層も丸ごと整理したいなら / 📂 強力なリスト化ツールの
作成を依頼する
よかったらシェアしてね!
  • URLをコピーしました!
目次