質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Google ドライブ

Google ドライブは、Google社が提供するオンラインストレージサービス。オンラインストレージ上に、画像や動画、テキスト、Word/PDFのファイルなどさまざまなファイル保存することができます。また、他のユーザーと共有することも可能です。

Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

makefile

make は、プログラムのビルド作業を自動化するツールです。コンパイル、リンク、インストール等のルールを記述したテキストファイルをmakefileと呼び、このルールに従ってmakeが自動的にビルドを実行する。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

解決済

2回答

1259閲覧

Googleドライブにアップロードする。

ruallout

総合スコア20

Google ドライブ

Google ドライブは、Google社が提供するオンラインストレージサービス。オンラインストレージ上に、画像や動画、テキスト、Word/PDFのファイルなどさまざまなファイル保存することができます。また、他のユーザーと共有することも可能です。

Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

makefile

make は、プログラムのビルド作業を自動化するツールです。コンパイル、リンク、インストール等のルールを記述したテキストファイルをmakefileと呼び、このルールに従ってmakeが自動的にビルドを実行する。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

1クリップ

投稿2022/09/22 10:02

前提

ご覧頂きありがとうございます。
以下の内容を実行する際にエラーメッセージが出てしまいます。

①のスプレッドシート【シート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; }

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

jbpb0

2022/09/22 21:30

質問のタグの「makefile」って、質問内容に関係ありますか?
guest

回答2

0

自己解決

ご回答頂きありがとうございます。
解決のヒントになりました。

一度function onclick2の中を見直しました。
【 excelExport(); 】【 gdriveUpload();】を削除したところ、動作はしたのですが思った順番どおりにいかなかったため、

Sheet_CopyTo.getRange(1,2,7).setValues(CopyValue);
その下に
SpreadsheetApp.flush();
を入れたら思い通り動作しました!

投稿2022/09/29 02:27

ruallout

総合スコア20

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

onclick2のところでのgdriveUploadで引数を指定されていません。
引数としてフォルダIDがある前提で作られていますから、DriveApp.getFolderByIdでIDを元にフォルダーを
取得することができずにエラーとなっているのではないでしょうか。

gdriveUploadはmyFunctionの中からも呼ばれていますがonclick2で呼ぶのは正しいのですか?

投稿2022/09/22 10:25

YAmaGNZ

総合スコア10258

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問