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分解の手間を省きたい場合は、こちらの方がシンプルです。

まとめ

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

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

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

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

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

目次