取得方法は簡単なので、カスタマイズしやすいよう経緯を書いておきます。
ExcelマクロやHTMLコードに慣れている人なら、難しくないと思います。
名称とURLを取得する理由
Googleドライブを更新するたび、共有者にメールで「何々ファイルを追加しました」とお知らせしています。
お知らせの都度、当該フォルダやファイルの名称とURLを手動でコピペ。
ファイル名とURLを一覧化しておけば手早いかなと思い、検索。
「googleドライブ ファイル一覧取得」で、Tomさんの記事を見つけました。
【GAS】Googleドライブのファイル名とURLをスプレッドシートにとってくるスクリプト【ちょいスクリプト】
「コピペの注意」に親切な方だと思い、「ファイル名とURL」の取得を試行してみました。
名称とURLを取得する方法
Googleスプレッドシートから、スクリプトエディタを使って取得します。
- Googleドライブにアクセス。タブを複製(複製したタブは後で使います)
- 1で、スプレッドシートを新規作成、セル「A1」をクリック
- メニューの「ツール」>「スクリプトエディタ」をクリック
- 「スクリプトエディタ」が開きます。Tomさんのコードをコピペ
- 5の4行め 'ID' に、1で複製したタブのURL末尾をコピペ
- 保存(Windowsならショートカット「Ctrl」+「S」押下)
- エラーがないか確認のため、メニューの「デバック(虫アイコン)」をクリック
- デバックエラーがあれば、該当の行を修正
私の場合、行3と12で「 = ‘---’」を半角で入れなおしたら、エラーが消えました - エラーがない状態になったら、メニューの「実行」(デバックアイコンの左にある右三角アイコン)をクリック
- 実行の初回は「警告」が表示されます。承認>アカウント選択>詳細>移動>許可で実行されます
- 2のセル「A1」から下行へ、実行結果が入ったことがわかります
フォルダの名称とURLも同時に取得したい
ファイルだけではちょっと不便なので、フォルダの名称とURLも取得するようにしました。
書き加えたコードは下記。
ファイルの名称とURLを取得した後、フォルダの名称とURLを取得して連結してから、スプレッドシートに書き出します。
:
//getFiles() を getFolders に変更します
files = folder.getFolders();
:
while (files.hasNext()) {
:
}
//list にフォルダのデータが入ったので
//その後にファイルを追加します
//ファイルデータを取得
filesElse = folder.getFiles();
//フォルダデータにファイルデータを追加
//list.push で list の後ろに追加されます
//getFiles() を getFolders に変更します
files = folder.getFolders();
:
while (files.hasNext()) {
:
}
//list にフォルダのデータが入ったので
//その後にファイルを追加します
//ファイルデータを取得
filesElse = folder.getFiles();
//フォルダデータにファイルデータを追加
//list.push で list の後ろに追加されます
while(filesElse.hasNext()) {
var buff = filesElse.next();
list.push([buff.getName(), buff.getUrl()]);
};
:
var buff = filesElse.next();
list.push([buff.getName(), buff.getUrl()]);
};
:
Googleスクリプトエディタでできること
通称「GAS(Google Apps Script)」で検索すると、ノウハウのページがたくさんヒットします。
Googleさんの説明を見ると、いろいろできてとても便利そう。
アドオンやスクリプトを使用して機能を追加する - Google Workspace ラーニング センター
以上、GASはじめの記事でした😃
コメント
コメントを投稿