【GAS】スプレッドシートの新規作成・改その4(おしまい)

記事
IT・テクノロジー
■前回はこちら

今回はスプレッドシートの新規作成処理の改良版最終回ということで、
1~3までの処理の結合をしていきます。

結合して関数化したソースは以下になります。
function createSpreadsheet(spreadsheetName=``, folderID=``){
  let flag = true;
  let drive;
  let files;
  let newFileID = ``;

  if(spreadsheetName!==``){
    //ドライブデータの取得
    if(folderID!==``){
      drive = DriveApp.getFolderById(folderID);
      files = drive.getFiles();
    }else{
      drive = DriveApp.getRootFolder();
      files = drive.getFiles();    }

    //重複チェック
    while(files.hasNext()){
      const file = files.next();
      if(file.getMimeType() === MimeType.GOOGLE_SHEETS && _
      file.getName() === spreadsheetName){
        flag = false;
        break;
      }

      //スプレッドシートデータの新規作成処理
      newFileID = SpreadsheetApp.create(spreadsheetName).getId();
      //フォルダが指定されていれば、指定フォルダへ移動する
      if(folderID !== ``){
        const folder = DriveApp.getFolderById(folderID);
        DriveApp.getFileById(newFileID).moveTo(folder);
      }
    }
  }

  //戻り値
  return newFileID;
}

引数のspreadsheetNameとfolderIDはブランクをデフォルト値に設定していて、未入力時はブランクを戻り値で返す様にエラー処理しています。

エラーについては重複によるエラーなのか、引数の引き渡しミスによるエラーなのかの判別が現状だとできていないので、Log出力などするように追記してあげる必要も検討した方がよさそうですが、
とりあえず共同開発とかしない限りはこんなもんでいいかなといった感じです。





サービス数40万件のスキルマーケット、あなたにぴったりのサービスを探す