Googleドライブでファイル共有やデータ管理も一般化してきています。社内専用としてスプレッドシートを使った業務データを共有して使っている方も多いのではないでしょうか?
大量のデータを使って各種処理をさまざま作っているので、フォルダ毎に分けても後からスプレッドシート等のアドレス一覧が欲しくなる時が多々あります。そんな時に1つ作って持っていくと便利なGoogle apps script(GAS)を見つけましたので紹介です。
スプレッドシートのURLとファイル名を取得する
取得が必要になる事が多くURLのコピペでも同じ事が出来ますが、数が多かったりするとコピペなんてしていられません。Google検索で探していたら、Google apps script(GAS)で処理するスクリプトを紹介している方がいました!
ありがたく使わせて頂きます。早速設置方法から。
URLとファイル名を取得するGoogle apps script(GAS)の設置方法
実例スプレッドシート
↑ コピペでそのまま使えますので、使い方はどうぞ。
他でもスクリプトの紹介はあると思いますが、こちらは分かりやすく応用ができるモノだと思います。スプレッドシートの他、CSVファイル等なんでもファイル毎のファイル名とURLを取得してくれます。
スプレッドシートを新規作成して「シート1」の他に「config」と名前を付けたタブを増やします。
「シート1」のA1セルに「ファイル名」とB1セルに「リンク」と入力し、「config」のA1に「フォルダID」と入れます。(このセルへの名称は自由で良いですが、入力しておく必要があります)
メニューの「機能拡張」から「Apps Script」を選択し、下記のソースコードをコピペします。
コピペしたら「デバック」をクリックします。初回の場合は、実行確認がでるので許可してください。
これで完成です。
function getListInFolder() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var confSheet = ss.getSheetByName(’config’);
var sheetName = ss.getSheetByName(’シート1’);
var lastRow = sheetName.getLastRow();
var lastCol = sheetName.getLastColumn();
var rangeList = sheetName.getRange(2, 1, lastRow, lastCol);
var folder_id = confSheet.getRange(”B1”).getValue();
var url = ‘https://drive.google.com/drive/folders/’ + folder_id;
var paths = url.split(’/’); // Separate URL into an array of strings by separating the string into substrings
var folderId = paths[paths.length - 1];
var folder = DriveApp.getFolderById(folderId);
var childFolders = folder.getFolders();
var files = folder.getFiles();
var list = [];
var rowIndex = 2;
var colIndex = 1;
// 初期化処理
rangeList.clearContent();
while(files.hasNext()) {
var buff = files.next();
list.push([buff.getName(), buff.getUrl()]);
};
while(childFolders.hasNext()) {
var buff = childFolders.next();
list.push([buff.getName(), buff.getUrl()]);
};
range = sheetName.getRange(rowIndex, colIndex, list.length, list[0].length);
// 対象の範囲にまとめて書き出します
range.setValues(list);
}
function onOpen(){
var menu=[
{name: “ファイル一覧を取得”, functionName: “getListInFolder”}
];
SpreadsheetApp.getActiveSpreadsheet().addMenu(”コマンド”,menu); //メニューを追加
}
Google apps script(GAS)を動かす初めは、アカウントの利用許可をする設定がありますが、当たり前の内容で他でも多く紹介されてますので、ここでは省きます。
URLとファイル名を取得するGoogle apps script(GAS)の使い方
- Google apps script(GAS)を入れたスプレッドシートを開きます。
- メニューバー(「ファイル」「編集」「表示」・・・、の並び)に「コマンド」と言うメニューが出てきます。表示されるのが少し遅いかもしれないので、気持ち待つ感じで。
- 「config」タブのB1セルに取得したいファイルがあるフォルダIDを入力します。
- 「シート1」に戻って「コマンド」メニューから「ファイル一覧を取得」を選択するとGASが実行されます。
- 少し待つと「スクリプトが終了しました」とメッセージがでて完成。
最後に
今回のスクリプトは1つは持っていて損はないと思います。どんな内容でもスプレッドシートを使って何か行う時には、必ずスプレッドシートのID(URL)が必要です。
下記の記事を参考、コードをそのまま、あるいは改造して使用させていただきました。
※リンクは張られていないものは、リンク先のサイトアドレスが変更もしくは見つからなくなったためです。