【GAS】を使ってGoogleドライブのフォルダ内のファイル名とURLをスプレッドシートに書き出す方法

Google Drive

Googleドライブを効率的に管理し、特定のフォルダ内のファイル情報を一目で確認したいと考えたことはありませんか?
特に、複数のファイルを管理する際には、ファイル名やURLを一覧で把握できると便利です。
そこで、Google Apps Scriptを使って、Googleドライブの特定のフォルダ内のファイル名とURLをGoogleスプレッドシートに書き出す方法をご紹介します。この方法を使えば、簡単にファイル情報を整理し、効率的に管理することができます。

1. Google Apps Scriptとは?

Google Apps Scriptは、Googleのサービスを自動化するためのスクリプト言語です。JavaScriptに基づいており、Googleドライブ、スプレッドシート、Gmailなど、さまざまなGoogleサービスと連携することができます。特に、業務効率化のために多くの企業や個人が利用しています。

実際の出力イメージ

2. 必要な準備

まず、Googleドライブにアクセスし、ファイル情報を取得したいフォルダのIDを確認します。フォルダのIDは、フォルダのURLに含まれている文字列です。
例えば、https://drive.google.com/drive/folders/your_folder_idというURLのyour_folder_idの部分がフォルダIDです。次に、Googleスプレッドシートを新規作成し、スクリプトエディタを開きます。スクリプトエディタは、「拡張機能」メニューから「Apps Script」を選択することで開くことができます。

3. スクリプトの作成手順

以下のスクリプトをスクリプトエディタに貼り付けてください。このスクリプトは、指定したフォルダ内の全てのファイルを取得し、そのファイル名とURLをスプレッドシートに書き出すものです。

javascriptコードをコピーする

function listFilesInFolder() {
// フォルダIDを指定
var folderId = 'YOUR_FOLDER_ID';
var folder = DriveApp.getFolderById(folderId);

// スプレッドシートとシートの指定
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
sheet.clear(); // シートをクリア

// ヘッダーを設定
sheet.appendRow(['File Name', 'File URL']);

// フォルダ内のファイルを取得
var files = folder.getFiles();

// ファイルごとに名前とURLをシートに書き出す
while (files.hasNext()) {
var file = files.next();
var fileName = file.getName();
var fileUrl = file.getUrl();

sheet.appendRow([fileName, fileUrl]);
}

Logger.log('Files have been listed in the sheet.');
}

スクリプト内のYOUR_FOLDER_IDを実際のフォルダIDに置き換えてください。

YOUR_FOLDER_ID とは?
フォルダURLの
https://drive.google.com/drive/folders/XXXXXXX
上記の”XXXXXXX”の部分です。

4. 実行方法

  1. スクリプトを保存し、必要に応じてプロジェクト名を付けます。
  2. スクリプトエディタの実行ボタン(▶)をクリックしてスクリプトを実行します。
  3. 初回実行時には認証を求められますので、必要な権限を許可します。

スクリプトが正常に実行されると、スプレッドシートのアクティブなシートにファイル名とファイルURLが書き出されます。

5. スクリプトのカスタマイズ

このスクリプトは基本的な機能を提供しますが、さらにカスタマイズすることで、より便利に使用することができます。以下は、いくつかのカスタマイズ例です。

ファイルの種類でフィルタリング

特定のファイルタイプ(例えば、PDFやスプレッドシートファイル)のみを取得したい場合は、次のように変更できます。

javascriptコードをコピーする
function listFilesInFolder() {
var folderId = 'YOUR_FOLDER_ID';
var folder = DriveApp.getFolderById(folderId);
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
sheet.clear();
sheet.appendRow(['File Name', 'File URL']);

var files = folder.getFilesByType(MimeType.PDF); // PDFファイルのみを取得

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

Logger.log('PDF files have been listed in the sheet.');
}

サブフォルダ内のファイルも含める

サブフォルダ内のファイルも含めて一覧にしたい場合は、再帰的にフォルダを検索する関数を追加します。

javascriptコードをコピーする
function listFilesInFolder() {
var folderId = 'YOUR_FOLDER_ID';
var folder = DriveApp.getFolderById(folderId);
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
sheet.clear();
sheet.appendRow(['File Name', 'File URL']);

listFilesInFolderRecursive(folder, sheet);

Logger.log('All files have been listed in the sheet.');
}

function listFilesInFolderRecursive(folder, sheet) {
var files = folder.getFiles();
while (files.hasNext()) {
var file = files.next();
sheet.appendRow([file.getName(), file.getUrl()]);
}

var subFolders = folder.getFolders();
while (subFolders.hasNext()) {
var subFolder = subFolders.next();
listFilesInFolderRecursive(subFolder, sheet);
}
}

6. まとめ

Google Apps Scriptを使って、Googleドライブの特定のフォルダ内のファイル名とURLをGoogleスプレッドシートに書き出す方法をご紹介しました。
これにより、ファイル情報を一目で確認でき、業務効率化に役立てることができます。
スクリプトのカスタマイズも簡単にできるので、自分のニーズに合わせて柔軟に対応できます。

この方法を活用して、Googleドライブの管理をさらに効率化し、より生産的な作業環境を構築しましょう。Google Apps Scriptの可能性は無限大ですので、ぜひ他のプロジェクトにも挑戦してみてください。

Google Slide に一瞬でテキストを四角い複数の図形を生成する方法
スプレッドシートをハイライトさせる方法
APIエンドポイントを活用したGoogle App Scriptはこちら