前提
ご覧頂きありがとうございます。
以下の内容を実行する際にエラーメッセージが出てしまいます。
①のスプレッドシート【シート1】から②のスプレッドシートにコピペした後、②のスプレッドシートをエクセルに変換して指定のドライブにアップする。
スクリプトを真似て組んでみたのですが、実行できません。
実現したいこと
①ボタン一つですべてのスクリプトを上から順番に実行したい。
発生している問題・エラーメッセージ
エラーメッセージ 【Exception: Invalid argument: id】 ※gdriveUpload();のところででてしまいます。。 ### 該当のソースコード function onclick2(){ copyValue(); myFunction(); excelExport(); gdriveUpload(); } function copyValue(){ var SS_CopyFrom =SpreadsheetApp.openById("xxxxxxxxxx"); var Sheet_CopyFrom = SS_CopyFrom.getSheetByName('xxxxxxxxxx'); var CopyValue = Sheet_CopyFrom.getRange(5,2,7).getValues(); //貼り付け先のスプレッドシートのIDを指定してシート名を指定する var SS_CopyTo = SpreadsheetApp.openById("xxxxxxxxxx"); var Sheet_CopyTo = SS_CopyTo.getSheetByName('xxxxxxxxxx'); //コピーした値を貼り付ける。 Sheet_CopyTo.getRange(1,2,7).setValues(CopyValue); } function myFunction() { var ss = SpreadsheetApp.getActiveSpreadsheet(); var sheet = ss.getActiveSheet(); var name = sheet.getRange('B4:E4').getValue(); const xlsxName = name; const sheetID = "xxxxxxxxxx"; const folderID = "xxxxxxxxxx"; // スプレッドシートをExcel形式で取得 const xlsxFile = excelExport(sheetID, xlsxName); // ↓アップロード先にアップロード gdriveUpload(folderID, xlsxFile); } //スプレッドシートをexcelに変換して返す function excelExport(sheetID, fileName){ // --> エクセルファイル // sheetID:スプレッドシートのID // xlsxName:保存したいファイル名 let today = Utilities.formatDate(new Date(),"JST","MMdd");//今日の日付を取得MM-dd方式 let xlsxName = `${fileName}${today}.xlsx`; let options = { method: 'get', headers: {"Authorization": "Bearer " + ScriptApp.getOAuthToken()}, muteHttpExceptions: true }; //スプレッドシートの内容をエクセル変換 let fetchUrl = `https://docs.google.com/feeds/download/spreadsheets/Export?key=${sheetID}&exportFormat=xlsx`; let xlsxFile = UrlFetchApp.fetch(fetchUrl,options).getBlob().setName(xlsxName); return xlsxFile } // Googleドライブにアップロードする function gdriveUpload(folderID, uploadFile){ let folder = DriveApp.getFolderById(folderID); ⇐ここでエラーメッセージが出ます。 let drive_file = folder.createFile(uploadFile); return drive_file; }

回答2件
あなたの回答
tips
プレビュー