■このページを読んでわかること
GASを使用して、特定のフォルダ内のURLを抽出する方法がわかります。
■GAS実行前に準備すること
下記スプレッドシートは、GASでGoogleカレンダー登録の際に使用したスプレッドシートとなります。
こちらをまず、作成してください。
その後、GASの始め方を確認してコード入力の画面までいきます。
■フォルダの設定
対象のフォルダのフォルダIDが必要となります。
フォルダIDは下記画像にもある赤線の部分となります。
こちらを確認して、コピーしておきましょう。
■GASスクリプト入力画面
下記画像の画面までいければ問題ありません
■実際のコード
function getFileListInFolder() {
var folder_id = ‘ここにフォルダIDを入力してください’;
var url = ‘https://drive.google.com/drive/folders/’ + folder_id, // フォルダIDを入力する.
paths = url.split(‘/’), // Separate URL into an array of strings by separating the string into substrings.
folderId = paths[paths.length – 1], // Get a last element of paths array.
folder = DriveApp.getFolderById(folderId),
files = folder.getFiles(),
list = [],
rowIndex = 4, // The starting row of a range.//処理開始行
colIndex = 5, // The starting row of a column.//出力する列番号
ss, sheet,range,
sheetName = ‘実行するシート名を入力してください’;
// Creating a data array from a files iterator.
// Note: Latest file is the first.
while(files.hasNext()) {
var buff = files.next();
list.push([buff.getName(), buff.getUrl()]);
};
// folder.getFiles()では、ファイルは新しいものが最初に来ます
// 登録された順にしたいので、reverse() で調整します
list = list.reverse()
ss = SpreadsheetApp.getActive();
sheet = ss.getSheetByName(sheetName);
range = sheet.getRange(rowIndex, colIndex, list.length, list[0].length);
// 対象の範囲にまとめて書き出します
range.setValues(list);
}
コピペするだけで、対象のフォルダの中身がURLとして作成したスプレッドシートに出力されます。
■最後に
実際にコードを書く以外でプログラミングが上達するのは難しいです。
しかし、どういったことがGASで出来るのかというのを理解しておくことが
上達の一歩になると思います。
・GASの始め方
・GASを使用したカレンダー登録
・[GAS]GASを使用したメール一斉送信