Google ドライブでファイル名とリンクの一覧をお手軽に取得する方法

Google Apps Script を利用した Google ドライブの特定のフォルダのファイル名とリンクの一覧を作成する方法を紹介しています。
2021.07.02

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

7 月ですね。夏ですね。
なんやかんやで品質管理の世界に戻ってきたかめです。
その辺りの話はまた機会がある時にでも書きたいと思います。

クラスメソッド は 7 月から新しい期が始まるのですが、私も昨日から会社のさまざまなリスクに対応する危機管理室という部署へ異動し、外部認証取得やナレッジ共有などの品質管理的なお仕事をすることになりました。

仕事柄、共有 Google ドライブには監査法人へ提出する大量のエビデンスや関係するドキュメントなどが保管されているのですが、異動したばかりでどこに何があるのかや、それらがどんなものかを把握できていません。
そこで、ファイルを仕分けするのにファイル名とコメントの一覧を作りたいなーと思ったので、特定の Google ドライブからファイルとフォルダの一覧を作成する GAS を書いてみました。
今回は、この GAS 付スプレッドシートの作り方をご紹介します。

※本記事のスクリプトは akiko-pusu さんの以下の記事で紹介されていたスクリプトをベースとして少し手を加えたものです。
この記事では、非エンジニアの方でも作成できるような手順を書いていますので、とにかくコードが知りたいという方は、 akiko-pusu さんの記事をおすすめします。
Google Drive上の指定のフォルダ以下のファイル一覧をSpreadSheetに書き出す | Qiita

作り方

用意するもの

  • Google アカウント
  • BGM : こめかみパンチングなあの曲

作成手順

  1. Web ブラウザから Google アカウントへログインし、Google ドライブを開きます
  2. [新規] - [ Google スプレッドシート ]をクリックします
  3. スプレッドシートが表示されたら、適当なスプレッドシート名を入力します
  4. シート 1 は、 A1 にファイル名、 B1 にリンク と入力し、 A 列B 列に罫線を引きます
  5. 新しいシートを挿入し、シート名を config とします
  6. configシートの A1 にフォルダ ID と入力し、 B1 の色を変えます
  7. スプレッドシートの [ツール] - [スクリプトエディタ] をクリックします
  8. 表示された画面で画面左上の「無題のプロジェクト」をクリックします
  9. 表示されたダイアログで適当なプロジェクト名を設定し、[OK]ボタンをクリックします
  10. [コード.gs ]に以下を貼り付けます
  11. [保存]アイコンをクリックします

動作確認

  1. スクリプトエディタの[実行する関数を選択]プルダウンから onOpen を選択します
  2. [実行]アイコンをクリックします
  3. Google の認証画面が表示された場合、承認します

    • 以下のような警告が表示された場合、左下の 詳細 をクリックして表示された プロジェクト名(安全ではないページ)へ移動 をクリックし、要求される権限内容を確認して承認します
  4. 実行ログが「実行完了」になっていることを確認します

  5. スプレッドシートに戻り、 config シートの B1 セルに一覧を取得したい Google ドライブのフォルダ ID を入力します

    • フォルダ ID は、 URL の folders 以降の部分です(この図の ID は実在しません)
  6. スプレッドシートのツールバーから [コマンド] - [ファイル一覧を取得] をクリックします
  7. 「スクリプトが終了しました」というメッセージが表示されたら シート 1 に対象のフォルダの一覧が作成されているか確認します

    • ちなみに、今回のテスト用フォルダの中身はこんな感じです

一覧が作成できていれば完成です!

使い方

  1. スプレッドシート config シートの B1 セルに一覧を取得したフォルダのフォルダ ID を入力します
  2. ツールバーの [コマンド] - [ファイル一覧を取得] をクリックします
  3. シート1 に必要な情報が作成されているので、シート名のプルダウンから [別のワークブックにコピー] - [ 新しいスプレッドシート] を選択して、データを移動します

このように使うと繰り返し利用することができます。

おまけ

このファイルを部内に共有したところ、「サブフォルダに対して再帰的な処理もできる?」という声があり、 OTAZOMAN さんの以下の記事を見つけました。

GASでGoogleDriveのサブフォルダとファイル一覧を出力する | オーバーフォーティーおやじログ

6 分の壁はあるのですが、私の環境ではこのまま利用できたのと、ファイル数が多くてもこちらをベースに工夫すれば目的のデータが取得できると思います。

Special Thanks(参考サイト)

Google Drive上の指定のフォルダ以下のファイル一覧をSpreadSheetに書き出す | Qiita
GASでGoogleDriveのサブフォルダとファイル一覧を出力する | オーバーフォーティーおやじログ