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

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

新規登録して質問してみよう
ただいま回答率
85.47%
PhpSpreadsheet

PhpSpreadsheetは、PHPExcelの後継であるPHPライブラリです。新規Excelファイルの作成や既存Excelファイルの読み書き、ファイル編集など一連の操作を無償で行うことができます。

Google Apps Script

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

JavaScript

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

Google

Googleは、アメリカ合衆国に位置する、インターネット関連のサービスや製品を提供している企業です。検索エンジンからアプリケーションの提供まで、多岐にわたるサービスを提供しています。

Q&A

解決済

1回答

540閲覧

【GAS】スプレッドシート1からスプレッドシート2へ値をコピーしてエクセルへ

ruallout

総合スコア20

PhpSpreadsheet

PhpSpreadsheetは、PHPExcelの後継であるPHPライブラリです。新規Excelファイルの作成や既存Excelファイルの読み書き、ファイル編集など一連の操作を無償で行うことができます。

Google Apps Script

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

JavaScript

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

Google

Googleは、アメリカ合衆国に位置する、インターネット関連のサービスや製品を提供している企業です。検索エンジンからアプリケーションの提供まで、多岐にわたるサービスを提供しています。

0グッド

0クリップ

投稿2022/10/05 02:57

前提

【google apps script】
ざっくりとですが、3人ほどで使う下記のようなスプレッドシートのアプリを開発中です。

①ボタンを押す

②スプレッドシート1からスプレッドシート2へ値をコピー

③スプレッドシート2を特定のファルダへエクセルファイルとして抽出

④スプレッドシート2の値の範囲を削除

しかし、②、④の機能が以前は問題なく動作していたが、急に動作しなくなくなりました。
③は問題なく動作します。

変更した点で覚えがあるのは、、
・スプレッドシート2の共有人数を増やした。
・デプロイをバージョンアップした

openById等で使うファイルID等には間違いはなく、以前は出来ていた為、そもそもコードが問題点なのか分からず質問です。
申し訳ございませんが、プログラミングを初めて数か月の初心者ですので、コード以外の設定等で間違っている可能性もあります。
ご確認の程、ご回答いただければ幸いです。
よろしくお願いいたします。

実現したいこと

上記、①~④の動作

発生している問題・エラーメッセージ

特になし

該当のソースコード

function onclick3(){ SheetCopyValue(); fileupload(); } function SheetCopyValue(){ var ss = SpreadsheetApp.openById("スプレッドシート1"); var sheet = ss.getSheetByName('xxxxxxxxxxxxx'); var CopyValue = sheet.getRange(5,1,32,5).getValues(); var cell_E2 = sheet.getRange("E2") // 4.D2セルの値を取得する var val_E2 = cell_E2.getValue() // 5.E2セルの値が"口座返金"かどうか判断する if(val_E2=="口座返金"){ // 口座返金の場合 //貼り付け先のスプレッドシートのIDを指定してシート名を指定する var SS_CopyTo = SpreadsheetApp.openById("スプレッドシート2"); var Sheet_CopyTo = SS_CopyTo.getSheetByName('xxxxxxxxxxxxx'); //コピーした値を貼り付ける。 Sheet_CopyTo.getRange(1,1,32,5).setValues(CopyValue); consle.log(CopyValue) }else{ // 口座返金でない場合 // 1.口座入力欄を削除して貼り付け const array = sheet.getRange(5,1,32,5).getValues(); array.splice(10, 5); var SS_CopyTo = SpreadsheetApp.openById("スプレッドシート2"); var Sheet_CopyTo = SS_CopyTo.getSheetByName('xxxxxxxxxxxxx'); //コピーした値を貼り付ける。 Sheet_CopyTo.getRange(1,1,27,5).setValues(array); SpreadsheetApp.flush(); }consle.log(array) } function fileupload() { var ss = SpreadsheetApp.getActiveSpreadsheet(); var sheet = ss.getActiveSheet(); var name = sheet.getRange('B4').getValue(); const xlsxName = name; const sheetID = "xxxxxxxxxxxxx"; var id = "xxxxxxxxxxxxx"; //フォルダID var ss = SpreadsheetApp.getActiveSpreadsheet(); var sheet = ss.getActiveSheet(); var month = sheet.getRange('F2').getValue(); var name = month; var target = DriveApp.getFolderById(id); var folders = target.getFoldersByName(name); while (folders.hasNext()) { var folder = folders.next(); var folderID = folder.getId(); // ファイルID(); // スプレッドシートを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; } function rangeClearContent() { var SS = SpreadsheetApp.openById("スプレッドシート2"); var sheet = SS.getSheetByName('xxxxxxxxxxxxx)'); var range = sheet.getRange("A1:F33"); range.clearContent(); } }

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

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

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

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

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

guest

回答1

0

自己解決

別ファイルで同じfunction名のものを下記の様に末尾に+1を追加したら問題なく動作しました。

SheetCopyValue1();
fileupload1();

投稿2022/10/05 10:23

ruallout

総合スコア20

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.47%

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

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

質問する

関連した質問