【GAS】Google Driveのフォルダ内のファイル名、URLを取得する汎用版【コピペプログラミング】

コピペプログラミング

https://tom2rd.sakura.ne.jp/wp/2019/05/16/post-9098/

このスクリプトを、SpreadSheetのマクロ風にメニューに表示させて、フォルダのURLをポップアップのメッセージボックスから入力できるようにしました。まぁ、汎用的に使えるようにという感じです。

SpreadSheet

シート自体を開放するので、ご自由にお使いください。といいたいところですが、編集権がいるので、Facebookのメッセンジャーか、こだいらあたりでCivicTechかで、メールアドレスをお知らせいただけると、共有いたします。

役にたったな。。と思ったら

アマゾンギフトE-mailタイプで、まで、お布施いただけると、こだいらあたりでCivicTechの活動費に充てたいと思います。

15円からお布施いただけます。


使い方

最初に使う時

マクロを追加して、メニューを出します。これには実行を承認する必要があります(Google App Scriptに共通ですが)

ツール・マクロ・インポートを押します。

この中で、Tom_onMenu の 関数を追加します。

マクロを実行します。マクロ・Tom_onMenuです。

承認の画面類

これで、Menuが出てきます。

ファイル名・URLの取り込み

URL名前Getというメニューがでていますので、Drive読込 をクリック

ポップアップが出てきますので、ファイル名と、URLを取得したい Google DriveのフォルダのURLをコピーして入れてください。

通常、↓みたいなURLです。

https://drive.google.com/drive/u/0/folders/dacaKDHhoearhaohfaDHPFIUD

そうすると、こんな感じで、ファイル名と、URLが取り込まれます。

共有して使う場合は、あとで、情報を消しておいた方がいいかもしれないので。。クリアするメニューもつけておきました。↓のシート1クリアを押すと、綺麗に消えます。

コピペでプログラミング

コピペで使いたい方のために。。

メッセージボックスに入力して、ファイル名、URLを取り出す関数

function Tom_getFileListInFolder() {
//フォルダのURLを入力してもらいIDを指定して、SpreadSheet の シート1に、ファイル名と、URLを取得して、SpreadSheet に書込み
try{
var folder_name = Browser.inputBox(‘Google DriveのフォルダURLを入れてください’);
var folder_id=folder_name.replace(‘https://drive.google.com/drive/u/0/folders/’,”);

folder = DriveApp.getFolderById(folder_id);
files = folder.getFiles();
list = []; //この変数のファイル名・URLが入っていきます
rowIndex = 1; // The starting row of a range.
colIndex = 1; // The starting row of a column.
var ss;
var sheet;
var range;
sheetName = ‘シート1’; //デフォルトのシート名がシート1です。

list.push([“ファイル名”,”URL”]);

while(files.hasNext()) {
var buff = files.next();
list.push([buff.getName(), buff.getUrl()]);

};
ss = SpreadsheetApp.getActive();
sheet = ss.getSheetByName(sheetName);
range = sheet.getRange(rowIndex, colIndex, list.length, list[0].length);

// 対象の範囲にまとめて書き出します
range.setValues(list);
}catch(e){
Browser.msgBox(e);
}

}

シートを綺麗にクリアする関数

function Tom_clearSheet(){
//シート1を全部クリア
try{
var ss;
var sheet;
var range;
sheetName = ‘シート1’; //デフォルトのシート名がシート1です。

ss = SpreadsheetApp.getActive();
sheet = ss.getSheetByName(sheetName);
// 全クリア
range = sheet.clear();
}catch(e){
Browser.msgBox(e);
}
}

メニューを出す関数

function Tom_onMenu() {
// スプレッドシートにメニューを追加する関数
SpreadsheetApp
.getActiveSpreadsheet()
.addMenu(‘URL名前Get’, [
{name: ‘Drive読込’, functionName: ‘Tom_getFileListInFolder’},
{name: ‘シート1クリア’, functionName: ‘Tom_clearSheet’},
]);
}

コピペの場合、なぜか全角が入ることがあるので、エラーが出たら ’ や ” の文字あたりに全角が入ってないか確認してみてください。

役にたったな。。と思ったら

アマゾンギフトE-mailタイプで、まで、お布施いただけると、こだいらあたりでCivicTechの活動費に充てたいと思います。

15円からお布施いただけます。