Amazonで見るセール会場へ

Googleドライブ│フォルダ内のファイルURLを一括取得して出力する方法

Googleドライブで多数のファイルを扱っていると、「共有リンクをいちいち開いてコピーするのが面倒」と思ったことはありませんか?

そんなときに便利なのがGoogle Apps Script(GAS)での自動URL取得です。今回は、ドライブ内のファイル名とURLを一括でスプレッドシートに出力する方法を紹介します。

目次

基本:フォルダ内のファイル名とURLを取得するコード

function getFileListInFolder() {
  var url = 'https://drive.google.com/drive/folders/フォルダID';
  var paths = url.split('/');
  var folderId = paths.pop();
  var folder = DriveApp.getFolderById(folderId);
  var files = folder.getFiles();
  var list = [];
  var rowIndex = 2; // 2行目から
  var colIndex = 1;
  var sheetName = 'シート1';

  while (files.hasNext()) {
    var file = files.next();   
    list.push([file.getName(), file.getUrl()]);
  }

  var sheet = SpreadsheetApp.getActive().getSheetByName(sheetName);
  var range = sheet.getRange(rowIndex, colIndex, list.length, list[0].length);
  range.setValues(list);
}
  • 使い方:フォルダID を差し替えて実行するだけで、対象フォルダ内のファイル名とURLがスプレッドシートに出力されます。

応用①:画像URLとして直接閲覧できる形式に変換

GoogleドライブのURLはそのままだと <img> で表示できません。

以下のように変換することで、画像として埋め込み可能なURLに変えられます。

function getFileListInFolder() {
  var url = 'https://drive.google.com/drive/folders/フォルダID';
  var folderId = url.split('/').pop();
  var folder = DriveApp.getFolderById(folderId);
  var files = folder.getFiles();
  var list = [];

  while (files.hasNext()) {
    var file = files.next();   
    var imageUrl = file.getUrl();
    imageUrl = imageUrl.replace("file/d/", "uc?export=view&id=");
    imageUrl = imageUrl.replace("/view?usp=drivesdk", "");
    list.push([file.getName(), imageUrl]);
  }

  var sheet = SpreadsheetApp.getActive().getSheetByName("シート1");
  var range = sheet.getRange(2, 1, list.length, list[0].length);
  range.setValues(list);
}

この形式で出力すると、HTMLやWebアプリに画像を表示しやすくなります。

応用②:URL入力を使わずフォルダIDを直入力するバージョン

function getFileListInFolder() {
  var folderId = "XXXXXXXXXXXXXXXXXXXXXXXXXX"; // フォルダIDを直接記入
  var files = DriveApp.getFolderById(folderId).getFiles(); 
  var list = [];

  while (files.hasNext()) {
    var file = files.next();   
    var imageUrl = file.getUrl();
    imageUrl = imageUrl.replace("file/d/", "uc?export=view&id=");
    imageUrl = imageUrl.replace("/view?usp=drivesdk", "");
    list.push([file.getName(), imageUrl]);
  }

  var sheet = SpreadsheetApp.getActive().getSheetByName("シート1");
  var range = sheet.getRange(2, 1, list.length, list[0].length);
  range.setValues(list);
}

URL分解の手間を省きたい場合は、こちらの方がシンプルです。

応用③:サブフォルダも含めて一覧にする

ここまでの方法は、指定したフォルダの直下しか見ません。

中にあるフォルダの中まで全部たどりたい場合は、フォルダを見つけるたびに同じ処理を繰り返す形にします。

種類・名前・URLの3列で、フォルダの下にファイルがぶら下がる形で出力されます。

function makeList() {
  const folder_id = "フォルダID"; // リスト化したいフォルダのID

  const ss = SpreadsheetApp.getActiveSpreadsheet();
  const sheet_id = ss.getId();
  const sheet_name = ss.getSheets()[0].getName();

  const folder = DriveApp.getFolderById(folder_id);

  appendLogToSpreadsheet(['種類', '名前', 'URL'], sheet_id, sheet_name);

  function getAllFolder(f) {
    const folders = f.getFolders();
    while (folders.hasNext()) {
      const subFolder = folders.next();
      appendLogToSpreadsheet(['フォルダ', subFolder.getName(), subFolder.getUrl()], sheet_id, sheet_name);
      getAllFile(subFolder);
      getAllFolder(subFolder);
    }
  }

  function getAllFile(f) {
    const files = f.getFiles();
    while (files.hasNext()) {
      const file = files.next();
      appendLogToSpreadsheet([' └ ファイル', file.getName(), file.getUrl()], sheet_id, sheet_name);
    }
  }

  getAllFile(folder);
  getAllFolder(folder);
}

function appendLogToSpreadsheet(log, sheetId, sheetName) {
  const spreadSheet = SpreadsheetApp.openById(sheetId);
  spreadSheet.getSheetByName(sheetName).appendRow([log[0], log[1], log[2]]);
  SpreadsheetApp.flush();
}

共有フォルダの棚卸しや、「どこに何があるか」を他の人に説明するときに使えます。

まとめ

  • Google Apps Scriptを使えば、ドライブフォルダ内のファイルURLを一括取得してスプレッドシートに出力できる
  • URLを直接 <img> タグで表示できる形式に変換することも可能
  • スプレッドシートで画像リストや資料リンク集を自動生成する際に便利

画像ギャラリー・作品一覧・リンク集など、あらゆるファイル管理に活用できます。

業務の効率化や資料作成にぜひ取り入れてみてください!

ほかの記事はGoogleスプレッドシート・ドライブの使い方まとめからご覧いただけます。

Google Workspace を学べる本と、作業が捗る機材

スプレッドシートもドキュメントも、基本の型を知ると作業時間が目に見えて減ります。

Google Workspace を学べる本

技術評論社
¥1,870 (2026/09/15 20:36時点 | Amazon調べ)
\Amazonで商品を見る/
Amazon
\楽天市場で商品を見る/
楽天市場
\Yahoo!ショッピングで商品を見る/
Yahooショッピング
\Amazonで商品を見る/
Amazon
\楽天市場で商品を見る/
楽天市場
\Yahoo!ショッピングで商品を見る/
Yahooショッピング
インプレス
¥2,803 (2026/09/15 20:36時点 | Amazon調べ)
\Amazonで商品を見る/
Amazon
\楽天市場で商品を見る/
楽天市場
\Yahoo!ショッピングで商品を見る/
Yahooショッピング

作業が捗る機材

\Amazonで商品を見る/
Amazon
\楽天市場で商品を見る/
楽天市場
\Yahoo!ショッピングで商品を見る/
Yahooショッピング
\Amazonで商品を見る/
Amazon
\楽天市場で商品を見る/
楽天市場
\Yahoo!ショッピングで商品を見る/
Yahooショッピング

選び方をもっと詳しく

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

WAZAの有料記事のサブスクリプションも開始しました。

目次