見出し画像

GoogleDrive内のファイル整理の効率化

GoogleDrive内にファイルが増えてしまい、必要なデータがどこにあるわからなくなる。。
移動するときもDriveの読み込みが遅く時間がかかっていたのでGASで効率化しようと思い考えました!

Drive内のファイル整理が劇的に楽になります!

①用意するもの

・情報を書き出すシート
 ・下記シートをSpreadsheetで開いてください

・開くとこんな感じのシートになってます
 ・右側の図形は後でスクリプトを割り当てます
 ・ダウンロードした際、図形消えていたら作成してください!

②スクリプト

・ファイル→New ▶ スクリプトファイルをクリック
 ・スクリプトファイルを作成し下記をコピペしてください

・画像URL書き出し、シートクリア用スクリプト

function getFileListInFolder() {
//フォルダのURLを入力してもらいIDを指定して、SpreadSheet の シート1に、ファイル名と、URLを取得して、SpreadSheet に書込み
try{
   var folder_name = Browser.inputBox('ファイル名指定');
   var folder_id=folder_name.replace('https://drive.google.com/drive/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 = '画像URL書き出し用'; //書き出し用のシート名を記載

   list.push(["ファイル名","URL","ファイルサイズ"]);

   while(files.hasNext()) {
     var buff = files.next();
     list.push([buff.getName(), buff.getUrl(), buff.getSize()]);
     
   };
   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 clearSheet(){
//画像URL書き出し用を全部クリア
try{
 var ss;
 var sheet;
 var range;
 sheetName = '画像URL書き出し用'; //データを削除したいシート名を記載

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

・ファイル移動用スクリプト

//以下をコピペしてご利用ください
//プログラム0|プログラム名を付ける
function moveFile() {

 //プログラム1|スプレッドシートの情報を取得する
 var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
 var sheetname = 'ファイル移動用'; //書き出し用のシート名を記載
 var sheet = spreadsheet.getSheetByName(sheetname);
 
 //プログラム2|フォルダパスの情報を取得する
 var folderurl = sheet.getRange('B1').getValue();

 //プログラム3|フォルダパスの情報を取得する
 var myArray= folderurl.split('/'); 
 var folderid = myArray[myArray.length-1];
 
 //プログラム4|移動したいファイルURLを取得する
 var Lastrow = sheet.getLastRow(); 
 var myRange = sheet.getRange(4, 1, Lastrow-3).getValues();
 
 //プログラム5|移動先のフォルダIDを取得する
 var folder = DriveApp.getFolderById(folderid); 

 //プログラム6|ファイルを移動する
 for (var i = 0; i < myRange.length; i++) {
   if (myRange[i][0] !== ''){
     var myArray = myRange[i][0].split('/')
     var file = DriveApp.getFileById(myArray[5]);
     file.moveTo(folder);  
   }
 } 
}

③スクリプトを図形に割り当てます

図形の右クリックメニューでスクリプト割り当てます

③移動元ファイルURLを書き出す

フォルダIDをコピーする
・DriveのURL、folders/移行がフォルダIDです!
 ・https://drive.google.com/drive/folders/XXXXX

・画像URL書き出しのスクリプトを実行、フォルダIDを記載する

・画像URL書き出し用タブにファイル名URLが書き出される

④データ移動先フォルダのURL指定する

・移動先フォルダのURLをシートB1セルに記載

・A4移行に③で書き出したファイルURLをコピペ
 ・「②ファイル移動」スクリプトを実行する


ファイルが移動される!!
次回利用する際は「③画像URLクリア」で前回の情報削除して「①画像URL書き出し」からスタートしてください!

・参考にした記事(ほぼコピペです...)
 ・ファイル移動について
 ・ファイルデータ取得について

この記事が気に入ったらサポートをしてみませんか?