【Googleドライブ】フォルダとファイルの名称とURLを取得するには【GAS】




取得方法は簡単なので、カスタマイズしやすいよう経緯を書いておきます。

ExcelマクロやHTMLコードに慣れている人なら、難しくないと思います。

名称とURLを取得する理由

Googleドライブを更新するたび、共有者にメールで「何々ファイルを追加しました」とお知らせしています。

お知らせの都度、当該フォルダやファイルの名称とURLを手動でコピペ

ファイル名とURLを一覧化しておけば手早いかなと思い、検索。

「googleドライブ ファイル一覧取得」で、Tomさんの記事を見つけました。

【GAS】Googleドライブのファイル名とURLをスプレッドシートにとってくるスクリプト【ちょいスクリプト】

「コピペの注意」に親切な方だと思い、「ファイル名とURL」の取得を試行してみました。

名称とURLを取得する方法

Googleスプレッドシートから、スクリプトエディタを使って取得します。

  1. Googleドライブにアクセス。タブを複製(複製したタブは後で使います)
  2. 1で、スプレッドシートを新規作成、セル「A1」をクリック
  3. メニューの「ツール」>「スクリプトエディタ」をクリック
  4. 「スクリプトエディタ」が開きます。Tomさんのコードをコピペ
  5. 5の4行め 'ID' に、1で複製したタブのURL末尾をコピペ
  6. 保存(Windowsならショートカット「Ctrl」+「S」押下)
  7. エラーがないか確認のため、メニューの「デバック(虫アイコン)」をクリック
  8. デバックエラーがあれば、該当の行を修正
    私の場合、行3と12で「 = ‘---’」を半角で入れなおしたら、エラーが消えました
  9. エラーがない状態になったら、メニューの「実行」(デバックアイコンの左にある右三角アイコン)をクリック
  10. 実行の初回は「警告」が表示されます。承認>アカウント選択>詳細>移動>許可で実行されます
  11. 2のセル「A1」から下行へ、実行結果が入ったことがわかります

フォルダの名称とURLも同時に取得したい

ファイルだけではちょっと不便なので、フォルダの名称とURLも取得するようにしました。

書き加えたコードは下記。

ファイルの名称とURLを取得した後、フォルダの名称とURLを取得して連結してから、スプレッドシートに書き出します。

:
//getFiles() を getFolders に変更します
files = folder.get
Folders();
:
while (files.hasNext()) {
:
}

//list にフォルダのデータが入ったので
//その後にファイルを追加します
//ファイルデータを取得
filesElse = folder.getFiles();

//フォルダデータにファイルデータを追加
//
list.push で list の後ろに追加されます
while(filesElse.hasNext()) {
var buff = filesElse.next();
list.push([buff.getName(), buff.getUrl()]);
};
:

Googleスクリプトエディタでできること

通称「GAS(Google Apps Script)」で検索すると、ノウハウのページがたくさんヒットします。

Googleさんの説明を見ると、いろいろできてとても便利そう。

アドオンやスクリプトを使用して機能を追加する - Google Workspace ラーニング センター

以上、GASはじめの記事でした😃